diff --git a/Cargo.lock b/Cargo.lock index 648cd78d6..060d453c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -521,9 +521,11 @@ dependencies = [ "bytes", "chrono", "clap", + "ed25519-compact", "futures", "indexmap 2.14.0", "insta", + "libc", "nanoid", "regex", "reqwest 0.12.28", @@ -11852,7 +11854,7 @@ dependencies = [ "flate2", "indexmap 2.14.0", "memchr", - "thiserror 2.0.19", + "thiserror 2.0.20", "zopfli", ] diff --git a/Cargo.toml b/Cargo.toml index d2a1442de..19b1d3ab7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -233,6 +233,7 @@ proc-macro2 = "1.0" quote = "1.0" syn = { version = "2.0", features = ["full", "extra-traits"] } hex = "0.4" +ed25519-compact = { version = "2.3", default-features = false, features = ["std"] } httpmock = { version = "0.7" } mockall = { version = "0.15.0" } hcl-rs = "0.19" diff --git a/crates/alien-bindings/src/traits.rs b/crates/alien-bindings/src/traits.rs index 8e405cdb1..62ba5c2da 100644 --- a/crates/alien-bindings/src/traits.rs +++ b/crates/alien-bindings/src/traits.rs @@ -948,6 +948,185 @@ pub trait Container: Binding { fn as_any(&self) -> &dyn std::any::Any; } +/// A request to create a sandbox session. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct CreateSessionRequest { + /// Caller-chosen session id. Omitted means the provider allocates one. + #[serde(skip_serializing_if = "Option::is_none")] + pub session_id: Option, + /// Opaque tenant key. Never sent to a provider verbatim — the binding derives a + /// fixed-length identifier from it with a deployment-scoped HMAC. + #[serde(skip_serializing_if = "Option::is_none")] + pub tenant_key: Option, + /// Environment variables to place in the session. + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] + pub env: BTreeMap, +} + +/// A live sandbox session. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct SandboxSession { + /// Provider-scoped session identifier + pub session_id: String, + /// Current lifecycle state + pub state: SandboxSessionState, + /// Lifecycle generation. A capability from another generation is rejected, which is how + /// terminate revokes without distributing a revocation list. + pub generation: u64, +} + +/// Lifecycle state of a sandbox session. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase")] +pub enum SandboxSessionState { + /// Created but not yet able to run a command. + /// + /// A real state, not a placeholder: a MicroVM takes seconds to reach `RUNNING`, and calling + /// that Running would tell a caller to send commands to something that cannot answer. + Starting, + /// Executing, consuming CPU and memory + Running, + /// Suspended with state preserved + Suspended, + /// Terminated; the id will not run again + Terminated, +} + +/// A command to run inside a sandbox. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct RunCommandRequest { + /// Command and arguments + pub command: Vec, + /// Working directory inside the sandbox + #[serde(skip_serializing_if = "Option::is_none")] + pub working_directory: Option, + /// Environment overlaid on the session's own + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] + pub env: BTreeMap, + /// Wall-clock ceiling. Required — a defaulted deadline is a hang waiting for a slow day. + pub deadline: Duration, +} + +/// One frame of a running command's output. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase", tag = "type")] +pub enum CommandOutput { + /// Bytes written to stdout + #[serde(rename_all = "camelCase")] + Stdout { + /// Monotonic across both streams, so a caller can interleave them in production order + seq: u64, + /// Raw bytes; command output is not necessarily UTF-8 + data: Vec, + }, + /// Bytes written to stderr + #[serde(rename_all = "camelCase")] + Stderr { + /// Monotonic across both streams + seq: u64, + /// Raw bytes + data: Vec, + }, + /// The command finished. Exactly one terminal frame is emitted, always last. + #[serde(rename_all = "camelCase")] + Exit { + /// Process exit code + code: i32, + /// Set when output was cut short by a bound rather than by the command finishing + #[serde(default)] + truncated: bool, + }, +} + +/// An authenticated, port-scoped capability to reach a service inside a sandbox. +/// +/// Not a URL string: AWS needs a JWE and a port header, Azure an Entra token, and a bare +/// string cannot carry either. Returning one would push callers into building the request +/// themselves and getting the auth wrong. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct PreviewCapability { + /// Endpoint the request must be sent to + pub endpoint: String, + /// Headers that must accompany every request + pub headers: BTreeMap, + /// Ports this capability admits. A request to any other port is refused upstream. + pub allowed_ports: Vec, + /// Seconds until the capability expires + pub expires_in_seconds: u64, +} + +/// A sandbox binding: create sessions, run untrusted code in them, and tear them down. +/// +/// Capabilities differ per platform. Call `capabilities()` and branch, or call and handle the +/// typed error — an unsupported capability is never a silent no-op. +#[async_trait] +pub trait Sandbox: Binding { + /// What this platform's backend supports. + fn capabilities(&self) -> alien_core::SandboxCapabilities; + + /// Creates a session. + async fn create(&self, request: CreateSessionRequest) -> Result; + + /// Fetches a session by id, or `None` if it does not exist. + /// + /// Requires `reconnect`. A GCP session id is scoped to one Cloud Run instance, so GCP + /// returns the typed error rather than a `None` a caller would read as "expired". + async fn get(&self, session_id: &str) -> Result>; + + /// Fetches a session, creating it if absent. + async fn get_or_create(&self, request: CreateSessionRequest) -> Result; + + /// Lists sessions belonging to this sandbox's parent. + async fn list(&self) -> Result>; + + /// Runs a command, streaming output frames until exactly one terminal frame. + /// + /// The stream carries backpressure: a consumer that stops reading stops the sandbox's + /// writer, rather than buffering without bound. + async fn run_command( + &self, + session_id: &str, + request: RunCommandRequest, + ) -> Result>>; + + /// Reads a file out of the sandbox. Paths are normalised and may not escape the root. + async fn read_file(&self, session_id: &str, path: &str) -> Result>; + + /// Writes files into the sandbox. + async fn write_files(&self, session_id: &str, files: BTreeMap>) -> Result<()>; + + /// Creates a directory inside the sandbox. + async fn mkdir(&self, session_id: &str, path: &str) -> Result<()>; + + /// Mints a capability to reach a declared port. Requires `preview`. + async fn preview(&self, session_id: &str, port: u16) -> Result; + + /// Suspends a session, preserving state. Requires `suspendResume`. + async fn suspend(&self, session_id: &str) -> Result<()>; + + /// Resumes a suspended session. Requires `suspendResume`. + async fn resume(&self, session_id: &str) -> Result<()>; + + /// Captures full session state and returns its identifier. Requires `snapshot`. + async fn snapshot(&self, session_id: &str) -> Result; + + /// Terminates a session. Idempotent: terminating an absent session succeeds. + async fn terminate(&self, session_id: &str) -> Result<()>; + + /// Get a reference to this object as `Any` for dynamic casting + fn as_any(&self) -> &dyn std::any::Any; +} + /// A provider must implement methods to load the various types of bindings /// based on environment variables or other configuration sources. #[async_trait] @@ -988,6 +1167,8 @@ pub trait BindingsProviderApi: Send + Sync + std::fmt::Debug { /// Given a binding identifier, builds a ServiceAccount implementation. async fn load_service_account(&self, binding_name: &str) -> Result>; + + /// Runtime-only binding env vars (a local Postgres connection with its password, a local /// BYO-key AI binding) for the given resource — re-resolved on every (re)start so the secret /// reaches the worker process but is never written to persisted worker metadata. The resource diff --git a/crates/alien-core/Cargo.toml b/crates/alien-core/Cargo.toml index d4223d8f4..6944b79a0 100644 --- a/crates/alien-core/Cargo.toml +++ b/crates/alien-core/Cargo.toml @@ -12,6 +12,9 @@ openapi = ["dep:utoipa"] jsonschema = ["dep:schemars"] test-utils = [] local = ["tokio/fs"] +# Signing and verifying sandbox capability tokens. Gated because alien-core is also built for +# targets that have no business carrying a crypto implementation. +sandbox-capability = ["dep:ed25519-compact"] [dependencies] serde = { workspace = true, features = ["derive"] } @@ -31,6 +34,7 @@ async-trait = { workspace = true } bytes = { workspace = true } reqwest = { workspace = true } base64 = { workspace = true } +ed25519-compact = { workspace = true, optional = true } alien-macros = { workspace = true } alien-error = { workspace = true, features = ["openapi"] } thiserror = { workspace = true } @@ -47,3 +51,7 @@ futures = { workspace = true } name = "schema_exporter" path = "src/bin/schema_exporter.rs" required-features = ["clap", "openapi"] + +# Killing a process group needs `kill(2)` with a negative pid, which std does not expose. +[target.'cfg(unix)'.dependencies] +libc = "0.2" diff --git a/crates/alien-core/src/bin/schema_exporter.rs b/crates/alien-core/src/bin/schema_exporter.rs index 99f1267f8..cba8739e1 100644 --- a/crates/alien-core/src/bin/schema_exporter.rs +++ b/crates/alien-core/src/bin/schema_exporter.rs @@ -100,6 +100,14 @@ use utoipa::OpenApi; AiOutputs, Queue, QueueOutputs, + Sandbox, + SandboxOutputs, + SandboxCode, + SandboxLimits, + SandboxEgress, + SandboxSessionPolicy, + SandboxCapabilities, + SandboxCapability, Email, EmailInbound, EmailEvents, diff --git a/crates/alien-core/src/bindings/mod.rs b/crates/alien-core/src/bindings/mod.rs index 088dbe8ec..7f8bcf487 100644 --- a/crates/alien-core/src/bindings/mod.rs +++ b/crates/alien-core/src/bindings/mod.rs @@ -22,6 +22,7 @@ mod container_apps_environment; mod kv; mod postgres; mod queue; +mod sandbox; mod service_account; mod storage; mod vault; @@ -52,6 +53,10 @@ pub use postgres::{ pub use queue::{ LocalQueueBinding, PubSubQueueBinding, QueueBinding, ServiceBusQueueBinding, SqsQueueBinding, }; +pub use sandbox::{ + AwsSandboxBinding, AzureSandboxBinding, GcpSandboxBinding, KubernetesSandboxBinding, + LocalSandboxBinding, SandboxBinding, +}; pub use service_account::{ AwsServiceAccountBinding, AzureServiceAccountBinding, GcpServiceAccountBinding, ServiceAccountBinding, diff --git a/crates/alien-core/src/bindings/sandbox.rs b/crates/alien-core/src/bindings/sandbox.rs new file mode 100644 index 000000000..692d12f08 --- /dev/null +++ b/crates/alien-core/src/bindings/sandbox.rs @@ -0,0 +1,288 @@ +//! Sandbox binding definitions. +//! +//! Carries what a provider needs to reach the durable parent and create sessions inside it. +//! Session identity is never in here — sessions are created at runtime and the provider is the +//! record, so a binding describes the parent only. + +use super::BindingValue; +use serde::{Deserialize, Serialize}; + +/// Represents a sandbox binding for creating and reaching sandbox sessions. +/// +/// Service tags are prefixed with `sandbox-` because serde selects the variant on the `service` +/// field alone. An unprefixed `local` would deserialize as another resource's local binding by +/// silently dropping the fields that differ. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(tag = "service")] +pub enum SandboxBinding { + /// AWS Lambda MicroVM sandboxes + #[serde(rename = "sandbox-aws")] + Aws(AwsSandboxBinding), + /// Azure Container Apps Sandboxes + #[serde(rename = "sandbox-azure")] + Azure(AzureSandboxBinding), + /// Cloud Run sandboxes, launched inside the workload's own instance + #[serde(rename = "sandbox-gcp")] + Gcp(GcpSandboxBinding), + /// Sandbox pods under a sandboxed runtime class + #[serde(rename = "sandbox-kubernetes")] + Kubernetes(KubernetesSandboxBinding), + /// Local Docker sandboxes managed by the local sandbox manager + #[serde(rename = "sandbox-local")] + Local(LocalSandboxBinding), +} + +/// AWS sandbox binding configuration. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AwsSandboxBinding { + /// MicroVM image ARN that scopes this sandbox's sessions + pub image_arn: BindingValue, + /// Image version. Sessions are enumerated by image and version together, so a rolled + /// version remains a cleanup scope until its own MicroVMs are gone. + pub image_version: BindingValue, + /// Region the MicroVMs run in + pub region: BindingValue, + /// Execution role attached to each MicroVM, distinct from the workload's own role + #[serde(skip_serializing_if = "Option::is_none")] + pub execution_role_arn: Option>, + /// Egress connectors every session is started with. + /// + /// Carried rather than implied: a MicroVM started with no connector reaches the public + /// internet, so an empty list here is `allow`, not `deny`. The declared mode is realised by + /// which connector setup built, and the session has to be started with it. + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub egress_connector_arns: Vec>, + /// Ports a preview capability may be minted for. + /// + /// Carried because the token is what grants ingress: `CreateMicrovmAuthToken` mints access to + /// whatever port it is asked for, so "a port not listed here can never be exposed" is only + /// true if the declared list reaches the code that mints. + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub preview_ports: Vec, + /// Idle seconds after which a session suspends, if the declaration asked for one. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub idle_suspend_seconds: Option, +} + +/// Azure sandbox binding configuration. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AzureSandboxBinding { + /// Sandbox group that scopes every sandbox, image, snapshot and secret + pub sandbox_group: BindingValue, + /// ADC data-plane endpoint, which is separate from the ARM control plane + pub data_plane_endpoint: BindingValue, + /// Region the sandbox group lives in; selects the per-region ADC endpoint + pub region: BindingValue, + /// Resource group the sandbox group sits in. The data-plane path is scoped by it, and the + /// Azure client config does not carry one. + pub resource_group: BindingValue, +} + +/// GCP sandbox binding configuration. +/// +/// There is no durable parent to address: a Cloud Run sandbox is a subprocess of the workload's +/// own instance, created through a CLI on the container's filesystem. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct GcpSandboxBinding { + /// Path to the sandbox CLI inside the Cloud Run container + pub launcher_path: BindingValue, + /// Whether sandboxes may reach the network. Carried in the binding rather than passed per + /// create: the launcher takes `--allow-egress` per sandbox, and a limit the application + /// supplies is a limit it can decline to supply. + pub allow_egress: BindingValue, +} + +/// Kubernetes sandbox binding configuration. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct KubernetesSandboxBinding { + /// Namespace sandbox pods are created in + pub namespace: BindingValue, + /// Runtime class every sandbox pod must carry, such as `gvisor` or `kata` + pub runtime_class: BindingValue, + /// Label selector identifying this sandbox's pods, used for enumeration and reaping + pub selector: BindingValue, + /// Session broker served by the operator. Claiming a pod is a `PATCH` on pods, which must + /// not reach the application. + pub broker_url: BindingValue, + /// Secret holding the capability signing key, by name. The binding names it; only the + /// broker can read it. + pub key_name: BindingValue, + /// Where Kubernetes mounted the pod's own ServiceAccount token. A path, not a secret: the + /// platform put the file there and the broker verifies it with a `TokenReview`. + pub token_path: BindingValue, +} + +/// Local sandbox binding configuration. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct LocalSandboxBinding { + /// Loopback endpoint of the local sandbox manager + pub manager_url: BindingValue, + /// Key scoping this sandbox's sessions within the manager + pub sandbox_key: BindingValue, + /// File holding the route's bearer token. A locator, not the token: a binding is + /// serialized into the workload's environment, and a secret there is a secret in state. + pub token_path: BindingValue, +} + +impl SandboxBinding { + /// Creates an AWS sandbox binding. + pub fn aws( + image_arn: impl Into>, + image_version: impl Into>, + region: impl Into>, + ) -> Self { + Self::Aws(AwsSandboxBinding { + image_arn: image_arn.into(), + image_version: image_version.into(), + region: region.into(), + execution_role_arn: None, + egress_connector_arns: Vec::new(), + preview_ports: Vec::new(), + idle_suspend_seconds: None, + }) + } + + /// Creates an Azure sandbox binding. + pub fn azure( + sandbox_group: impl Into>, + data_plane_endpoint: impl Into>, + region: impl Into>, + resource_group: impl Into>, + ) -> Self { + Self::Azure(AzureSandboxBinding { + sandbox_group: sandbox_group.into(), + data_plane_endpoint: data_plane_endpoint.into(), + region: region.into(), + resource_group: resource_group.into(), + }) + } + + /// Creates a GCP sandbox binding. + pub fn gcp( + launcher_path: impl Into>, + allow_egress: impl Into>, + ) -> Self { + Self::Gcp(GcpSandboxBinding { + launcher_path: launcher_path.into(), + allow_egress: allow_egress.into(), + }) + } + + /// Creates a Kubernetes sandbox binding. + pub fn kubernetes( + namespace: impl Into>, + runtime_class: impl Into>, + selector: impl Into>, + broker_url: impl Into>, + key_name: impl Into>, + token_path: impl Into>, + ) -> Self { + Self::Kubernetes(KubernetesSandboxBinding { + namespace: namespace.into(), + runtime_class: runtime_class.into(), + selector: selector.into(), + broker_url: broker_url.into(), + key_name: key_name.into(), + token_path: token_path.into(), + }) + } + + /// Creates a local sandbox binding. + pub fn local( + manager_url: impl Into>, + sandbox_key: impl Into>, + token_path: impl Into>, + ) -> Self { + Self::Local(LocalSandboxBinding { + manager_url: manager_url.into(), + sandbox_key: sandbox_key.into(), + token_path: token_path.into(), + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::bindings::{ContainerBinding, KvBinding}; + + #[test] + fn every_variant_roundtrips() { + let bindings = vec![ + SandboxBinding::aws("arn:aws:lambda:us-east-2:1:microvm-image:sbx", "3", "us-east-2"), + SandboxBinding::azure("sbg1", "https://management.swedencentral.azuredevcompute.io", "swedencentral", "rg"), + SandboxBinding::gcp("/usr/local/gcp/bin/sandbox", false), + SandboxBinding::kubernetes( + "alien-sandboxes", + "gvisor", + "alien.dev/sandbox=agent", + "http://alien-operator.alien.svc:8080", + "alien-sandbox-agent-capability", + "/var/run/secrets/kubernetes.io/serviceaccount/token", + ), + SandboxBinding::local("http://127.0.0.1:8931", "agent", "/state/sandbox-manager.token"), + ]; + + for binding in bindings { + let json = serde_json::to_string(&binding).expect("serializes"); + let restored: SandboxBinding = serde_json::from_str(&json).expect("deserializes"); + assert_eq!(binding, restored, "roundtrip changed the binding: {json}"); + } + } + + #[test] + fn service_tags_are_prefixed_and_distinct() { + let tags: Vec = vec![ + SandboxBinding::aws("a", "1", "r"), + SandboxBinding::azure("g", "e", "r", "rg"), + SandboxBinding::gcp("p", true), + SandboxBinding::kubernetes("n", "gvisor", "s", "http://op:8080", "k", "/t"), + SandboxBinding::local("u", "k", "t"), + ] + .iter() + .map(|binding| { + serde_json::to_value(binding).expect("serializes")["service"] + .as_str() + .expect("has a service tag") + .to_string() + }) + .collect(); + + for tag in &tags { + assert!(tag.starts_with("sandbox-"), "tag '{tag}' is not namespaced"); + } + + let mut unique = tags.clone(); + unique.sort(); + unique.dedup(); + assert_eq!(unique.len(), tags.len(), "duplicate service tags: {tags:?}"); + } + + /// The failure the bindings AGENTS.md warns about: with `tag = "service"`, serde picks the + /// variant on that field alone, so a shared tag lets one resource's binding deserialize as + /// another's by dropping the fields that differ. + #[test] + fn a_sandbox_binding_cannot_deserialize_as_another_resource() { + let json = serde_json::to_string(&SandboxBinding::local("http://127.0.0.1:8931", "agent", "/state/sandbox-manager.token")) + .expect("serializes"); + + serde_json::from_str::(&json) + .expect_err("a sandbox binding must not parse as a KV binding"); + serde_json::from_str::(&json) + .expect_err("a sandbox binding must not parse as a container binding"); + } + + #[test] + fn another_resource_binding_cannot_deserialize_as_a_sandbox() { + let json = serde_json::to_string(&ContainerBinding::local("api", "http://api.svc:8080")) + .expect("serializes"); + + serde_json::from_str::(&json) + .expect_err("a container binding must not parse as a sandbox binding"); + } +} diff --git a/crates/alien-core/src/error.rs b/crates/alien-core/src/error.rs index 470303556..3f3decbbd 100644 --- a/crates/alien-core/src/error.rs +++ b/crates/alien-core/src/error.rs @@ -186,6 +186,66 @@ pub enum ErrorData { )] FeatureNotEnabled { feature: String }, + /// A sandbox capability is unavailable on the target platform. + #[error( + code = "SANDBOX_CAPABILITY_UNSUPPORTED", + message = "Sandbox capability '{capability}' is not supported on {platform}", + retryable = "false", + internal = "false", + http_status_code = 400 + )] + SandboxCapabilityUnsupported { + /// The capability that was requested + capability: String, + /// The platform that does not offer it + platform: String, + }, + + /// The target platform has no sandbox backend at all. + #[error( + code = "SANDBOX_PLATFORM_UNSUPPORTED", + message = "Sandbox is not available on {platform}", + retryable = "false", + internal = "false", + http_status_code = 400 + )] + SandboxPlatformUnsupported { + /// The platform with no sandbox backend + platform: String, + }, + + /// A sandbox session capability was refused. + #[error( + code = "SANDBOX_CAPABILITY_REFUSED", + message = "Sandbox capability refused: {reason}", + retryable = "false", + internal = "false", + http_status_code = 403 + )] + SandboxCapabilityRefused { + /// Why it was refused. Deliberately coarse — it must not reveal which sessions exist. + reason: String, + }, + + /// A sandbox limit is missing or not a valid quantity. + #[error( + code = "SANDBOX_LIMIT_INVALID", + message = "Sandbox '{resource_id}' has an invalid {field} limit '{value}': {reason}", + retryable = "false", + internal = "false", + http_status_code = 400 + )] + SandboxLimitInvalid { + /// The sandbox whose limit failed validation + resource_id: String, + /// Which limit (cpu, memory, disk, maxProcesses) + field: String, + /// The rejected value + value: String, + /// Why it was rejected + reason: String, + }, + // Commands protocol errors /// Invalid Commands envelope. #[error( diff --git a/crates/alien-core/src/gateability.rs b/crates/alien-core/src/gateability.rs index eafd720d0..ce9c67eef 100644 --- a/crates/alien-core/src/gateability.rs +++ b/crates/alien-core/src/gateability.rs @@ -147,6 +147,7 @@ pub const MANIFEST_TYPES: &[&str] = &[ "daemon", "container", "email", + "sandbox", "experimental/aws-opensearch", ]; @@ -213,6 +214,46 @@ mod tests { } } + /// A sandbox declaration is the Frozen image and pool, not a session. Sessions are created at + /// runtime and cleaned up with the parent, so there is no Live entry for a gate to sit on. + #[test] + fn sandbox_gates_as_a_frozen_resource() { + assert_eq!(gate_refusal("sandbox", "agents"), None); + let gateability = type_gateability("sandbox"); + assert!(gateability.frozen, "the declaration itself gates at setup"); + assert!( + !gateability.live, + "sessions are not declared, so a live gate would have nothing to refuse" + ); + } + + /// Every manifest type must state its gateability, because the SDK builder surface is + /// generated from it — a type nobody asserted gets whatever the ownership table happens to + /// say, which is how a new resource acquires an unintended gate. + #[test] + fn every_manifest_type_is_asserted_somewhere_above() { + let asserted = [ + "kv", + "storage", + "queue", + "vault", + "ai", + "postgres", + "worker", + "daemon", + "container", + "email", + "experimental/aws-opensearch", + "sandbox", + ]; + for declared in MANIFEST_TYPES { + assert!( + asserted.contains(declared), + "{declared} is in the manifest but no test pins its gateability" + ); + } + } + #[test] fn extension_types_default_to_gateable() { assert_eq!(gate_refusal("acme-widgets", "widgets"), None); diff --git a/crates/alien-core/src/heartbeat.rs b/crates/alien-core/src/heartbeat.rs index 5aad9249c..e326bc66d 100644 --- a/crates/alien-core/src/heartbeat.rs +++ b/crates/alien-core/src/heartbeat.rs @@ -158,6 +158,8 @@ pub enum ResourceHeartbeatData { AzureServiceBusNamespace(AzureServiceBusNamespaceHeartbeatData), #[serde(rename = "ai")] Ai(AiHeartbeatData), + #[serde(rename = "sandbox")] + Sandbox(SandboxHeartbeatData), } #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] @@ -1529,6 +1531,97 @@ impl Default for PostgresHeartbeatStatus { } } +/// Content-free telemetry about a sandbox's sessions. +/// +/// Never anything from inside a session. A controller reaches only the cloud's management APIs, +/// and the whole point of the resource is that the control plane cannot see what runs in it. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(tag = "backend", rename_all = "camelCase")] +pub enum SandboxHeartbeatData { + AwsMicrovm(AwsMicrovmSandboxHeartbeatData), + AzureSandboxGroup(AzureSandboxGroupHeartbeatData), + KubernetesPods(KubernetesSandboxHeartbeatData), + Local(LocalSandboxHeartbeatData), +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct SandboxHeartbeatStatus { + pub health: ObservedHealth, + pub lifecycle: ProviderLifecycleState, + pub message: Option, + pub stale: bool, + pub partial: bool, + pub collection_issues: Vec, +} + +impl Default for SandboxHeartbeatStatus { + fn default() -> Self { + Self { + health: ObservedHealth::Healthy, + lifecycle: ProviderLifecycleState::Running, + message: None, + stale: false, + partial: false, + collection_issues: Vec::new(), + } + } +} + +/// AWS: MicroVMs started from one image, counted across every version. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct AwsMicrovmSandboxHeartbeatData { + pub status: SandboxHeartbeatStatus, + /// Image the sessions belong to. + pub image_identifier: String, + /// Sessions running now. Counted across all image versions, because a rolled version stays a + /// scope until its own MicroVMs are gone. + pub active_sessions: u32, + /// Image versions still carrying sessions. + pub versions_with_sessions: u32, + /// The image's own lifecycle state, which is where AWS surfaces base-image deprecation. + pub image_state: Option, +} + +/// Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count +/// is not available here. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct AzureSandboxGroupHeartbeatData { + pub status: SandboxHeartbeatStatus, + pub sandbox_group: String, + pub provisioning_state: Option, +} + +/// Kubernetes: pods carrying the sandbox label, in the deployment's namespace. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct KubernetesSandboxHeartbeatData { + pub status: SandboxHeartbeatStatus, + pub namespace: String, + pub active_sessions: u32, + /// Claimed but unused pods waiting in the pool. + pub idle_pods: u32, +} + +/// Local: containers Docker still holds for this sandbox. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct LocalSandboxHeartbeatData { + pub status: SandboxHeartbeatStatus, + pub active_sessions: u32, + /// Whether the loopback route is serving in this process. False after a manager restart until + /// the next tick rebinds it. + pub route_serving: bool, +} + #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] #[serde(tag = "backend", rename_all = "camelCase")] diff --git a/crates/alien-core/src/lib.rs b/crates/alien-core/src/lib.rs index 3eacd6ea5..369cf7e42 100644 --- a/crates/alien-core/src/lib.rs +++ b/crates/alien-core/src/lib.rs @@ -28,6 +28,10 @@ mod error; pub use error::*; mod resource; +pub mod sandbox_capability; +#[cfg(feature = "sandbox-capability")] +pub mod sandbox_capability_token; + pub use resource::*; mod ownership; diff --git a/crates/alien-core/src/ownership.rs b/crates/alien-core/src/ownership.rs index 92e3541e0..44eb1df57 100644 --- a/crates/alien-core/src/ownership.rs +++ b/crates/alien-core/src/ownership.rs @@ -74,7 +74,7 @@ pub fn ownership_policy_for_resource_type(resource_type: &str) -> ResourceOwners match resource_type { "function" | "container-cluster" => removed_resource_type(), "worker" | "daemon" | "container" => live_only(), - "compute-cluster" => frozen_with_runtime_cleanup(), + "compute-cluster" | "sandbox" => frozen_with_runtime_cleanup(), "artifact-registry" => frozen_with_management(), "build" | "network" diff --git a/crates/alien-core/src/resource.rs b/crates/alien-core/src/resource.rs index b0a520fa9..21657954a 100644 --- a/crates/alien-core/src/resource.rs +++ b/crates/alien-core/src/resource.rs @@ -202,6 +202,10 @@ impl<'de> Deserialize<'de> for Resource { serde_json::from_value::(value) .map_err(serde::de::Error::custom)?, ), + "sandbox" => Box::new( + serde_json::from_value::(value) + .map_err(serde::de::Error::custom)?, + ), "email" => Box::new( serde_json::from_value::(value) .map_err(serde::de::Error::custom)?, @@ -278,6 +282,7 @@ impl<'de> Deserialize<'de> for Resource { "kubernetes-cluster", "storage", "queue", + "sandbox", "email", "kv", "postgres", @@ -558,6 +563,10 @@ impl<'de> Deserialize<'de> for ResourceOutputs { serde_json::from_value::(value) .map_err(serde::de::Error::custom)?, ), + "sandbox" => Box::new( + serde_json::from_value::(value) + .map_err(serde::de::Error::custom)?, + ), "email" => Box::new( serde_json::from_value::(value) .map_err(serde::de::Error::custom)?, @@ -639,6 +648,7 @@ impl<'de> Deserialize<'de> for ResourceOutputs { "compute-cluster", "storage", "queue", + "sandbox", "email", "kv", "postgres", diff --git a/crates/alien-core/src/resource_links.rs b/crates/alien-core/src/resource_links.rs index fb5b2579d..be5ad8be1 100644 --- a/crates/alien-core/src/resource_links.rs +++ b/crates/alien-core/src/resource_links.rs @@ -229,6 +229,7 @@ mod tests { ("kubernetes-cluster", false), ("storage", false), ("queue", false), + ("sandbox", false), ("email", false), ("kv", false), ("postgres", false), diff --git a/crates/alien-core/src/resources/mod.rs b/crates/alien-core/src/resources/mod.rs index 9ac6a356d..a5b6bdeed 100644 --- a/crates/alien-core/src/resources/mod.rs +++ b/crates/alien-core/src/resources/mod.rs @@ -24,6 +24,9 @@ pub use storage::*; mod queue; pub use queue::*; +mod sandbox; +pub use sandbox::*; + mod build; pub use build::*; diff --git a/crates/alien-core/src/resources/sandbox.rs b/crates/alien-core/src/resources/sandbox.rs new file mode 100644 index 000000000..0e168042f --- /dev/null +++ b/crates/alien-core/src/resources/sandbox.rs @@ -0,0 +1,1190 @@ +//! Sandbox resource for running untrusted code in an isolated environment. +//! +//! A Sandbox is a session-oriented resource: the declaration provisions a durable parent, and +//! the application creates and destroys individual sessions through its binding at runtime. +//! +//! The capability set differs per platform and is published rather than assumed. Calling an +//! unsupported capability is a typed error naming both the platform and the capability, so a +//! portable application can branch on `SandboxCapabilities` before it calls. + +use crate::error::{ErrorData, Result}; +use crate::resource::{ResourceDefinition, ResourceOutputsDefinition, ResourceRef, ResourceType}; +use crate::resources::ToolchainConfig; +use crate::Platform; +use alien_error::AlienError; +use bon::Builder; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fmt::Debug; + +/// Specifies where the sandbox's root filesystem comes from. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", tag = "type")] +pub enum SandboxCode { + /// A prebuilt container image used as the sandbox root filesystem. + #[serde(rename_all = "camelCase")] + Image { + /// Image reference (e.g. `ubuntu:24.04`, `ghcr.io/myorg/sandbox:latest`) + image: String, + }, + /// Source built into a sandbox image at deploy time. + #[serde(rename_all = "camelCase")] + Source { + /// The source directory to build from + src: String, + /// Toolchain configuration with type-safe options + toolchain: ToolchainConfig, + }, +} + +/// Hard ceilings enforced on a sandbox session. +/// +/// These are limits, not scheduling requests. Untrusted code does not respect a hint, so every +/// field is enforced by the platform and a platform that cannot enforce one is rejected at plan +/// time rather than silently ignoring it. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct SandboxLimits { + /// CPU ceiling in cores or millicores (e.g. `"1"`, `"500m"`) + pub cpu: String, + /// Memory ceiling (e.g. `"2Gi"`, `"512Mi"`) + pub memory: String, + /// Disk ceiling (e.g. `"20Gi"`) + pub disk: String, + /// Maximum number of processes, which bounds fork bombs. + /// + /// Optional because only a container runtime has the primitive: Kubernetes sets a pid ceiling + /// per node, not per pod, and neither AWS MicroVMs nor Azure sandboxes expose one. Declaring + /// it on a platform that cannot apply it is refused at plan time. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub max_processes: Option, +} + +/// One of the five sizes a Lambda MicroVM can be built at. +/// +/// AWS has no ceiling knob: `minimumMemoryInMiB` sets a *baseline* and a running MicroVM bursts +/// vertically to four times it with no way to opt out. A declared ceiling is therefore honoured by +/// picking the tier whose **peak** stays inside it, not the tier whose baseline matches it. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct MicrovmTier { + /// What `minimumMemoryInMiB` is set to. + pub baseline_memory_mib: i64, + /// The most memory the MicroVM can reach, in MiB. + pub peak_memory_mib: i64, + /// The most vCPU the MicroVM can reach. + pub peak_vcpu: u32, + /// The most disk the MicroVM can use, in MiB. + pub max_disk_mib: i64, +} + +/// The published sizes, smallest first. Baseline memory to vCPU is 2 GB per vCPU, peak is four +/// times baseline, and disk is fixed per tier rather than independently selectable. +const MICROVM_TIERS: &[MicrovmTier] = &[ + MicrovmTier { + baseline_memory_mib: 512, + peak_memory_mib: 2048, + peak_vcpu: 1, + max_disk_mib: 8192, + }, + MicrovmTier { + baseline_memory_mib: 1024, + peak_memory_mib: 4096, + peak_vcpu: 2, + max_disk_mib: 8192, + }, + MicrovmTier { + baseline_memory_mib: 2048, + peak_memory_mib: 8192, + peak_vcpu: 4, + max_disk_mib: 8192, + }, + MicrovmTier { + baseline_memory_mib: 4096, + peak_memory_mib: 16384, + peak_vcpu: 8, + max_disk_mib: 16384, + }, + MicrovmTier { + baseline_memory_mib: 8192, + peak_memory_mib: 32768, + peak_vcpu: 16, + max_disk_mib: 32768, + }, +]; + +/// Outbound network policy for a sandbox. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", tag = "mode")] +pub enum SandboxEgress { + /// No outbound network access. + Deny, + /// Unrestricted outbound access to the public internet, but never to private ranges, + /// link-local addresses, or the deployment's own network. + Allow, + /// Outbound access only to the listed hostnames. No backend expresses this yet. + #[serde(rename_all = "camelCase")] + AllowDomains { + /// Hostnames the sandbox may reach + domains: Vec, + }, +} + +/// How long a session may live and when it is suspended. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct SandboxSessionPolicy { + /// Wall-clock ceiling on a single session, after which the platform terminates it. + /// + /// Optional because only Kubernetes has the primitive (`activeDeadlineSeconds`). AWS takes an + /// idle policy rather than a deadline, and neither Azure nor Local expose one, so declaring a + /// ceiling there is refused at plan time rather than accepted and never applied. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub max_lifetime_seconds: Option, + /// Idle period after which the session is suspended, where the platform supports it + #[serde(skip_serializing_if = "Option::is_none")] + pub idle_suspend_seconds: Option, +} + +/// What a platform's sandbox backend can actually do. +/// +/// Published so portable code can branch before calling rather than discovering a gap through +/// an error. Every field here corresponds to a capability that at least one platform lacks; +/// create, exec, files and terminate are the guaranteed floor and are therefore not listed. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct SandboxCapabilities { + /// A later call can reach a session created by an earlier one + pub reconnect: bool, + /// An authenticated, port-scoped capability to reach a service inside the sandbox + pub preview: bool, + /// Session state can be suspended and resumed + pub suspend_resume: bool, + /// A session's full state can be captured and used to create another + pub snapshot: bool, + /// Egress can be restricted to a hostname allowlist + pub domain_egress_rules: bool, + /// Whether a declared `deny` is actually enforced, rather than accepted and dropped + pub egress_deny: bool, + /// The platform enforces the declared cpu, memory and disk ceilings + pub enforced_limits: bool, + /// The platform can cap how many processes a session runs + pub process_limit: bool, + /// The platform terminates a session at a declared wall-clock deadline + pub session_lifetime: bool, + /// A command runs in its own PID namespace and cannot see or signal the agent's processes. + /// + /// Only where an agent runs as root. Creating the namespace needs `CAP_SYS_ADMIN`, and the + /// Kubernetes sandbox pod drops every capability — which is also what denies `ptrace` by + /// construction, so granting it there would remove a lock to add one. + pub supervisor_pid_namespace: bool, +} + +impl SandboxCapabilities { + /// Returns what the given platform's sandbox backend supports. + /// + /// Errors for platforms with no sandbox backend, rather than returning an all-false set — + /// "every capability is missing" and "this platform has no sandboxes" are different + /// conditions and an application should not have to tell them apart by inspection. + pub fn for_platform(platform: Platform) -> Result { + match platform { + Platform::Aws => Ok(Self { + reconnect: true, + preview: true, + suspend_resume: true, + snapshot: false, + domain_egress_rules: false, + egress_deny: true, + enforced_limits: true, + // A MicroVM's pid ceiling and its wall-clock lifetime are both absent from the + // API: `RunMicrovm` takes an idle policy, not a deadline, and nothing bounds + // process count. + process_limit: false, + session_lifetime: false, + // Measured, not assumed: the agent inside a Lambda MicroVM runs as uid 0 with + // `CapEff: 00000000a80425fb`, the standard container default set, which excludes + // `CAP_SYS_ADMIN`. It can drop privilege (`CAP_SETUID`/`CAP_SETGID` are held) and + // it cannot create a namespace. No backend offers this today. + supervisor_pid_namespace: false, + }), + // Azure the platform has all three — a per-port URL closed to anonymous traffic, a + // 0.54s resume, and a full-VM snapshot — and the binding provider implements none of + // them. The capability set describes what a caller can reach, not what the cloud + // could do, so these stay false until the provider catches up. + Platform::Azure => Ok(Self { + reconnect: true, + preview: false, + suspend_resume: false, + snapshot: false, + domain_egress_rules: false, + egress_deny: false, + enforced_limits: false, + process_limit: false, + session_lifetime: false, + // No Alien process inside an Azure sandbox, so there is no supervisor to isolate. + supervisor_pid_namespace: false, + }), + // A Cloud Run sandbox id is scoped to one instance, and session affinity does not + // hold one across turns. That is the absence of a reconnect guarantee, not a + // degraded one. + Platform::Gcp => Ok(Self { + reconnect: false, + preview: false, + suspend_resume: false, + snapshot: false, + domain_egress_rules: false, + egress_deny: true, + enforced_limits: false, + process_limit: false, + session_lifetime: false, + // A Cloud Run sandbox is a subprocess of the workload; nothing of ours is inside. + supervisor_pid_namespace: false, + }), + // Preview needs a gateway that validates a session-and-port capability, and that + // gateway does not exist yet. + Platform::Kubernetes => Ok(Self { + reconnect: true, + preview: false, + suspend_resume: false, + snapshot: false, + domain_egress_rules: false, + egress_deny: true, + enforced_limits: true, + // A pid ceiling is a kubelet setting per node, not a pod field. + process_limit: false, + // `activeDeadlineSeconds` on the pod, which the kubelet enforces. + session_lifetime: true, + // The pod drops every capability, including the `CAP_SYS_ADMIN` the agent would + // need to unshare. That is also what denies `ptrace`, so this stays false rather + // than the pod being weakened to make it true. + supervisor_pid_namespace: false, + }), + Platform::Local => Ok(Self { + reconnect: true, + preview: true, + suspend_resume: false, + snapshot: false, + domain_egress_rules: false, + egress_deny: true, + enforced_limits: true, + // Docker's `--pids-limit`. + process_limit: true, + session_lifetime: false, + // Local has no in-sandbox agent: the manager drives Docker from outside, so + // there is no supervisor sharing the sandbox to isolate from. + supervisor_pid_namespace: false, + }), + Platform::Machines | Platform::Test => { + Err(AlienError::new(ErrorData::SandboxPlatformUnsupported { + platform: platform.to_string(), + })) + } + } + } + + /// Returns a typed error if the named capability is absent on this platform. + pub fn require(&self, capability: SandboxCapability, platform: Platform) -> Result<()> { + let available = match capability { + SandboxCapability::Reconnect => self.reconnect, + SandboxCapability::Preview => self.preview, + SandboxCapability::SuspendResume => self.suspend_resume, + SandboxCapability::Snapshot => self.snapshot, + SandboxCapability::DomainEgressRules => self.domain_egress_rules, + SandboxCapability::EgressDeny => self.egress_deny, + SandboxCapability::EnforcedLimits => self.enforced_limits, + SandboxCapability::ProcessLimit => self.process_limit, + SandboxCapability::SessionLifetime => self.session_lifetime, + SandboxCapability::SupervisorPidNamespace => self.supervisor_pid_namespace, + }; + + if available { + return Ok(()); + } + + Err(AlienError::new(ErrorData::SandboxCapabilityUnsupported { + capability: capability.as_str().to_string(), + platform: platform.to_string(), + })) + } +} + +/// Names a single sandbox capability, so an unsupported call can report which one it needed. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub enum SandboxCapability { + /// Reaching a session created by an earlier call + Reconnect, + /// An authenticated, port-scoped ingress capability + Preview, + /// Suspending and resuming session state + SuspendResume, + /// Capturing full session state + Snapshot, + /// Restricting egress to a hostname allowlist + DomainEgressRules, + /// Refusing outbound access when a sandbox declares none + EgressDeny, + /// Platform-enforced resource ceilings + EnforcedLimits, + /// A ceiling on the number of processes a session may run + ProcessLimit, + /// A wall-clock ceiling on a session, applied by the platform rather than by a caller + SessionLifetime, + /// A command runs in its own PID namespace, isolated from the agent supervising it + SupervisorPidNamespace, +} + +impl SandboxCapability { + /// Returns the stable identifier used in errors and capability queries. + pub fn as_str(&self) -> &'static str { + match self { + Self::Reconnect => "reconnect", + Self::Preview => "preview", + Self::SuspendResume => "suspendResume", + Self::Snapshot => "snapshot", + Self::DomainEgressRules => "domainEgressRules", + Self::EgressDeny => "egressDeny", + Self::EnforcedLimits => "enforcedLimits", + Self::ProcessLimit => "processLimit", + Self::SessionLifetime => "sessionLifetime", + Self::SupervisorPidNamespace => "supervisorPidNamespace", + } + } +} + +/// An isolated environment for running untrusted code, created per session at runtime. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Builder)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +#[builder(start_fn = new)] +pub struct Sandbox { + /// Identifier for the sandbox. Must contain only alphanumeric characters, hyphens, and + /// underscores ([A-Za-z0-9-_]). Maximum 64 characters. + #[builder(start_fn)] + pub id: String, + /// Where the sandbox's root filesystem comes from + pub code: SandboxCode, + /// Enforced resource ceilings. + /// + /// Optional because not every platform can enforce them, and a declaration that names none + /// takes the platform's own defaults. Naming them on a platform that cannot enforce them is + /// rejected at plan time rather than silently ignored. + #[serde(skip_serializing_if = "Option::is_none")] + pub limits: Option, + /// Outbound network policy + pub egress: SandboxEgress, + /// Session lifetime and idle behaviour + pub session: SandboxSessionPolicy, + /// Ports eligible for a preview capability. A port not listed here can never be exposed, + /// so an application cannot widen its own ingress at runtime. + #[builder(default)] + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub preview_ports: Vec, +} + +impl Sandbox { + /// The resource type identifier for Sandbox + pub const RESOURCE_TYPE: ResourceType = ResourceType::from_static("sandbox"); + + /// Returns the sandbox's unique identifier. + pub fn id(&self) -> &str { + &self.id + } + + /// The declared ceilings, or the defaults a platform applies when none were named. + /// + /// Backends want a concrete set: a sandbox with no declared ceilings still runs inside + /// whatever the platform gives it, and a backend that had to branch on `None` would end up + /// inventing its own default anyway. + pub fn resolved_limits(&self) -> SandboxLimits { + self.limits.clone().unwrap_or_else(default_limits) + } + + /// Validates the declaration against what the target platform can enforce. + /// + /// Runs at plan time so an unenforceable limit or an unsupported egress mode fails before + /// anything is provisioned, rather than at the first exec. + pub fn validate_for_platform(&self, platform: Platform) -> Result<()> { + let capabilities = SandboxCapabilities::for_platform(platform)?; + + // No backend builds a sandbox image from source. Kubernetes turned this into an empty + // image string and a pod that could never schedule, which is the silent no-op the + // capability contract forbids — the failure has to land here instead. + if let SandboxCode::Source { .. } = &self.code { + return Err(AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "code".to_string(), + value: "source".to_string(), + reason: "no sandbox backend builds an image from source yet; give code.image a \ + prebuilt reference" + .to_string(), + })); + } + + let Some(limits) = self.limits.as_ref() else { + // Nothing declared, so nothing to enforce and nothing to reject. + return self.validate_capabilities(&capabilities, platform); + }; + + validate_quantity(&self.id, "cpu", &limits.cpu)?; + validate_quantity(&self.id, "memory", &limits.memory)?; + validate_quantity(&self.id, "disk", &limits.disk)?; + + if let Some(max_processes) = limits.max_processes { + if max_processes == 0 { + return Err(AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "maxProcesses".to_string(), + value: "0".to_string(), + reason: "a sandbox that may run no processes cannot run code".to_string(), + })); + } + capabilities.require(SandboxCapability::ProcessLimit, platform)?; + } + + // Declaring limits a platform ignores is worse than not declaring them: the stack reads + // as bounded while the sandbox is not. + capabilities.require(SandboxCapability::EnforcedLimits, platform)?; + + if platform == Platform::Aws { + // Refused here rather than at emit so a customer sees it while planning, and so both + // package formats inherit the same answer. + self.microvm_tier()?; + } + + self.validate_capabilities(&capabilities, platform) + } + + /// The MicroVM size that keeps every declared ceiling, or why none does. + /// + /// AWS sizes are discrete and a running MicroVM bursts to four times its baseline, so the + /// only tier that honours a ceiling is one whose peak fits inside it. A declaration no tier + /// satisfies is refused: shipping the nearest size would give the customer a sandbox that + /// exceeds the bound they wrote down. + pub fn microvm_tier(&self) -> Result { + let Some(limits) = self.limits.as_ref() else { + // Nothing declared: AWS's own default baseline, which is also `default_limits`. + return Ok(MICROVM_TIERS[2]); + }; + + let memory_mib = quantity_mib(&limits.memory).ok_or_else(|| { + AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "memory".to_string(), + value: limits.memory.clone(), + reason: "AWS sizes a MicroVM in whole MiB".to_string(), + }) + })?; + let disk_mib = quantity_mib(&limits.disk).ok_or_else(|| { + AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "disk".to_string(), + value: limits.disk.clone(), + reason: "AWS sizes a MicroVM's disk in whole MiB".to_string(), + }) + })?; + let cpu_millicores = millicores(&limits.cpu).ok_or_else(|| { + AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "cpu".to_string(), + value: limits.cpu.clone(), + reason: "expected cores or millicores".to_string(), + }) + })?; + + // Memory and disk choose the size; cpu is then checked rather than used to choose. + // AWS couples cpu to memory at 2 GB per vCPU, so letting a low cpu ceiling select the + // size too would quietly hand back a machine four times smaller than the memory ceiling + // asked for, with nothing to indicate it. + let sized = |tier: &&MicrovmTier| { + tier.peak_memory_mib <= memory_mib && tier.max_disk_mib <= disk_mib + }; + + let tier = MICROVM_TIERS + .iter() + .rev() + .find(sized) + .copied() + .ok_or_else(|| { + AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "memory".to_string(), + value: limits.memory.clone(), + reason: format!( + "a Lambda MicroVM bursts to four times its baseline, so the smallest \ + ceiling AWS can hold is 2Gi memory with 8Gi disk; '{}' memory and '{}' \ + disk fit no size", + limits.memory, limits.disk + ), + }) + })?; + + let required_millicores = i64::from(tier.peak_vcpu) * 1000; + if cpu_millicores < required_millicores { + return Err(AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: self.id.clone(), + field: "cpu".to_string(), + value: limits.cpu.clone(), + reason: format!( + "AWS allocates one vCPU per 2GB, so a MicroVM sized to a '{}' memory ceiling \ + reaches {} vCPU; declare cpu '{}' or lower the memory ceiling", + limits.memory, + tier.peak_vcpu, + tier.peak_vcpu + ), + })); + } + + Ok(tier) + } + + /// The capability checks that do not depend on declared limits. + fn validate_capabilities( + &self, + capabilities: &SandboxCapabilities, + platform: Platform, + ) -> Result<()> { + if matches!(self.egress, SandboxEgress::AllowDomains { .. }) { + capabilities.require(SandboxCapability::DomainEgressRules, platform)?; + } + + // `allow` asks for no restriction, so a backend that ignores it fails loudly on the first + // blocked connection. `deny` asks for one, and a backend that ignores it puts untrusted + // code on the internet with nothing to notice — so only this direction is gated. + if matches!(self.egress, SandboxEgress::Deny) { + capabilities.require(SandboxCapability::EgressDeny, platform)?; + } + + if !self.preview_ports.is_empty() { + capabilities.require(SandboxCapability::Preview, platform)?; + } + + if self.session.idle_suspend_seconds.is_some() { + capabilities.require(SandboxCapability::SuspendResume, platform)?; + } + + if self.session.max_lifetime_seconds.is_some() { + capabilities.require(SandboxCapability::SessionLifetime, platform)?; + } + + Ok(()) + } +} + +/// Ceilings applied when a declaration names none. +/// +/// Modest on purpose: an undeclared sandbox is one whose author did not think about sizing, and +/// the safe reading of that is a small box rather than a generous one. +fn default_limits() -> SandboxLimits { + SandboxLimits { + cpu: "1".to_string(), + memory: "2Gi".to_string(), + disk: "8Gi".to_string(), + max_processes: None, + } +} + +/// Validates a Kubernetes-style resource quantity such as `500m`, `2Gi` or `1`. +fn validate_quantity(resource_id: &str, field: &str, value: &str) -> Result<()> { + let invalid = |reason: &str| { + AlienError::new(ErrorData::SandboxLimitInvalid { + resource_id: resource_id.to_string(), + field: field.to_string(), + value: value.to_string(), + reason: reason.to_string(), + }) + }; + + let digits_end = value + .find(|c: char| !c.is_ascii_digit() && c != '.') + .unwrap_or(value.len()); + let (number, suffix) = value.split_at(digits_end); + + let parsed: f64 = number + .parse() + .map_err(|_| invalid("expected a number, optionally followed by a unit suffix"))?; + + if parsed <= 0.0 { + return Err(invalid("must be greater than zero")); + } + + const SUFFIXES: &[&str] = &["", "m", "k", "M", "G", "T", "Ki", "Mi", "Gi", "Ti"]; + if !SUFFIXES.contains(&suffix) { + return Err(invalid( + "unit must be one of m, k, M, G, T, Ki, Mi, Gi, Ti, or absent", + )); + } + + Ok(()) +} + +/// Splits a quantity into its number and unit suffix. +fn split_quantity(value: &str) -> Option<(f64, &str)> { + let trimmed = value.trim(); + let digits_end = trimmed + .find(|c: char| !c.is_ascii_digit() && c != '.') + .unwrap_or(trimmed.len()); + let (number, suffix) = trimmed.split_at(digits_end); + number.parse().ok().map(|number| (number, suffix)) +} + +/// A memory or disk quantity in whole MiB, rounded down. +/// +/// Every suffix `validate_quantity` accepts is handled here. Reading only `Gi` and `Mi` and +/// falling back for the rest would turn a declared `4G` into a different size than the customer +/// asked for, which for a ceiling means a sandbox larger than its bound. +pub fn quantity_mib(value: &str) -> Option { + let (number, suffix) = split_quantity(value)?; + let bytes = match suffix { + "" => number, + "k" => number * 1e3, + "M" => number * 1e6, + "G" => number * 1e9, + "T" => number * 1e12, + "Ki" => number * 1024.0, + "Mi" => number * 1024.0 * 1024.0, + "Gi" => number * 1024.0 * 1024.0 * 1024.0, + "Ti" => number * 1024.0 * 1024.0 * 1024.0 * 1024.0, + // `m` is a millicore suffix; memory has no use for it. + _ => return None, + }; + Some((bytes / (1024.0 * 1024.0)) as i64) +} + +/// A CPU quantity in millicores. +pub fn millicores(value: &str) -> Option { + let (number, suffix) = split_quantity(value)?; + match suffix { + "" => Some((number * 1000.0) as i64), + "m" => Some(number as i64), + _ => None, + } +} + +/// Outputs generated by a successfully provisioned Sandbox parent. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct SandboxOutputs { + /// Name of the durable parent that sessions are created inside + pub parent_name: String, + /// Platform-specific identifier for the parent (image ARN, sandbox group id, namespace) + #[serde(skip_serializing_if = "Option::is_none")] + pub identifier: Option, + /// Data-plane endpoint sessions are created through, where the platform has one + #[serde(skip_serializing_if = "Option::is_none")] + pub endpoint: Option, +} + +impl ResourceOutputsDefinition for SandboxOutputs { + fn get_resource_type(&self) -> ResourceType { + Sandbox::RESOURCE_TYPE + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn box_clone(&self) -> Box { + Box::new(self.clone()) + } + + fn outputs_eq(&self, other: &dyn ResourceOutputsDefinition) -> bool { + other.as_any().downcast_ref::() == Some(self) + } + + fn to_json_value(&self) -> serde_json::Result { + serde_json::to_value(self) + } +} + +impl ResourceDefinition for Sandbox { + fn get_resource_type(&self) -> ResourceType { + Self::RESOURCE_TYPE + } + + fn id(&self) -> &str { + &self.id + } + + fn get_dependencies(&self) -> Vec { + Vec::new() + } + + fn validate_update(&self, new_config: &dyn ResourceDefinition) -> Result<()> { + let new_sandbox = new_config + .as_any() + .downcast_ref::() + .ok_or_else(|| { + AlienError::new(ErrorData::UnexpectedResourceType { + resource_id: self.id.clone(), + expected: Self::RESOURCE_TYPE, + actual: new_config.get_resource_type(), + }) + })?; + + if self.id != new_sandbox.id { + return Err(AlienError::new(ErrorData::InvalidResourceUpdate { + resource_id: self.id.clone(), + reason: "the 'id' field is immutable".to_string(), + })); + } + + Ok(()) + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn as_any_mut(&mut self) -> &mut dyn Any { + self + } + + fn box_clone(&self) -> Box { + Box::new(self.clone()) + } + + fn resource_eq(&self, other: &dyn ResourceDefinition) -> bool { + other.as_any().downcast_ref::() == Some(self) + } + + fn to_json_value(&self) -> serde_json::Result { + serde_json::to_value(self) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn sandbox_with(egress: SandboxEgress, preview_ports: Vec) -> Sandbox { + Sandbox::new("agent-sbx".to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .limits(SandboxLimits { + cpu: "1".to_string(), + memory: "2Gi".to_string(), + disk: "20Gi".to_string(), + max_processes: None, + }) + .egress(egress) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .preview_ports(preview_ports) + .build() + } + + #[test] + fn resource_type_is_stable() { + assert_eq!(Sandbox::RESOURCE_TYPE.as_ref(), "sandbox"); + } + + #[test] + fn capability_sets_are_per_platform() { + let gcp = SandboxCapabilities::for_platform(Platform::Gcp).expect("gcp is supported"); + assert!(!gcp.reconnect, "a GCP session id is scoped to one instance, so reconnect is absent"); + assert!(!gcp.preview); + assert!(!gcp.enforced_limits); + + let azure = SandboxCapabilities::for_platform(Platform::Azure).expect("azure is supported"); + // The Azure data plane takes neither an egress policy nor a ceiling, so a declaration of + // either is refused rather than accepted and dropped. + assert!(!azure.domain_egress_rules); + assert!(!azure.egress_deny); + assert!(!azure.enforced_limits); + // Azure the cloud has snapshot, preview and resume; the binding provider returns + // unsupported for all three. What a caller can reach is what the set describes. + assert!(!azure.snapshot); + assert!(!azure.preview); + assert!(!azure.suspend_resume); + + let aws = SandboxCapabilities::for_platform(Platform::Aws).expect("aws is supported"); + assert!(!aws.snapshot, "AWS has no user-callable session snapshot"); + assert!(aws.suspend_resume); + + let k8s = SandboxCapabilities::for_platform(Platform::Kubernetes).expect("k8s is supported"); + assert!(!k8s.preview, "the session-scoped ingress gateway does not exist yet"); + } + + #[test] + fn platforms_without_a_backend_are_an_error_not_an_empty_set() { + let error = SandboxCapabilities::for_platform(Platform::Machines) + .expect_err("Machines has no sandbox backend"); + assert_eq!(error.code, "SANDBOX_PLATFORM_UNSUPPORTED"); + } + + #[test] + fn unsupported_capability_names_platform_and_capability() { + let capabilities = SandboxCapabilities::for_platform(Platform::Gcp).expect("supported"); + let error = capabilities + .require(SandboxCapability::Preview, Platform::Gcp) + .expect_err("GCP has no preview"); + + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + let rendered = error.to_string(); + assert!(rendered.contains("preview"), "names the capability: {rendered}"); + assert!(rendered.contains("gcp"), "names the platform: {rendered}"); + } + + /// No backend expresses a hostname allowlist: AWS and Kubernetes match CIDRs, and the Azure + /// data plane takes no egress policy at all. Accepting one anywhere would leave a stack + /// reading as restricted while the sandbox reaches the whole internet. + #[test] + fn a_hostname_allowlist_is_refused_on_every_backend() { + let sandbox = sandbox_with( + SandboxEgress::AllowDomains { + domains: vec!["example.com".to_string()], + }, + vec![], + ); + + for platform in + [Platform::Aws, Platform::Azure, Platform::Gcp, Platform::Kubernetes, Platform::Local] + { + let error = sandbox + .validate_for_platform(platform) + .expect_err("no backend expresses a hostname allowlist"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED", "on {platform:?}"); + } + } + + /// `deny` is the declaration that carries a security promise, so a backend that cannot keep + /// it has to refuse rather than accept it and run the code with open egress. + #[test] + fn a_denied_egress_is_refused_where_it_would_not_be_enforced() { + let sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + + // GCP is asserted at the capability rather than through validation: this sandbox declares + // ceilings GCP cannot enforce, so it is refused for a reason unrelated to egress. + assert!(SandboxCapabilities::for_platform(Platform::Gcp).expect("supported").egress_deny); + + for platform in [Platform::Aws, Platform::Kubernetes, Platform::Local] { + sandbox.validate_for_platform(platform).expect("deny is enforced here"); + } + + // Declares no ceilings, so the only thing left for Azure to refuse is the egress mode. + let egress_only = Sandbox::new("sbx".to_string()) + .code(SandboxCode::Image { + image: "alpine:3.20".to_string(), + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build(); + + let error = egress_only + .validate_for_platform(Platform::Azure) + .expect_err("the Azure data plane takes no egress policy, so deny cannot be kept"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + assert!(error.message.contains("egressDeny"), "names the capability: {}", error.message); + } + + /// Ceilings are rejected per-platform where unsupported — rejected when *declared*. With + /// limits mandatory that would read as "GCP sandboxes cannot exist", contradicting the + /// create, exec, files and terminate GCP does support. + #[test] + fn a_platform_that_cannot_enforce_limits_still_takes_a_sandbox_without_them() { + let declared = sandbox_with(SandboxEgress::Deny, Vec::new()); + declared + .validate_for_platform(Platform::Gcp) + .expect_err("declaring ceilings GCP cannot enforce is rejected"); + + let undeclared = Sandbox::new("sbx".to_string()) + .code(SandboxCode::Image { + image: "alpine:3.20".to_string(), + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build(); + + undeclared + .validate_for_platform(Platform::Gcp) + .expect("a sandbox naming no ceilings takes the platform's own"); + + // A backend still gets a concrete set, so nothing downstream has to invent one. + assert_eq!(undeclared.resolved_limits().cpu, "1"); + } + + #[test] + fn preview_ports_require_the_preview_capability() { + let sandbox = sandbox_with(SandboxEgress::Deny, vec![8080]); + + sandbox + .validate_for_platform(Platform::Aws) + .expect("AWS mints a port-scoped JWE"); + + let error = sandbox + .validate_for_platform(Platform::Kubernetes) + .expect_err("Kubernetes preview is deferred"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + } + + #[test] + fn gcp_rejects_a_sandbox_declaring_enforced_limits() { + let sandbox = sandbox_with(SandboxEgress::Allow, vec![]); + let error = sandbox + .validate_for_platform(Platform::Gcp) + .expect_err("GCP cannot enforce ceilings on a subprocess sandbox"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + } + + #[test] + fn invalid_quantities_are_rejected_with_the_offending_field() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + sandbox.limits.as_mut().expect("the fixture declares limits").memory = "2Gb".to_string(); + + let error = sandbox + .validate_for_platform(Platform::Aws) + .expect_err("Gb is not a valid suffix"); + assert_eq!(error.code, "SANDBOX_LIMIT_INVALID"); + assert!(error.to_string().contains("memory")); + + sandbox.limits.as_mut().expect("the fixture declares limits").memory = "2Gi".to_string(); + sandbox.limits.as_mut().expect("the fixture declares limits").cpu = "0".to_string(); + let error = sandbox + .validate_for_platform(Platform::Aws) + .expect_err("zero cpu is not a ceiling"); + assert_eq!(error.code, "SANDBOX_LIMIT_INVALID"); + } + + #[test] + fn zero_max_processes_is_rejected() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + sandbox + .limits + .as_mut() + .expect("the fixture declares limits") + .max_processes = Some(0); + + let error = sandbox + .validate_for_platform(Platform::Local) + .expect_err("a sandbox must be able to run at least one process"); + assert_eq!(error.code, "SANDBOX_LIMIT_INVALID"); + assert!(error.to_string().contains("maxProcesses")); + } + + /// A process ceiling needs a container runtime. Kubernetes sets one per node rather than per + /// pod, and neither MicroVMs nor Azure sandboxes expose one, so accepting the declaration + /// anywhere else would mean carrying a bound nothing applies. + #[test] + fn a_process_ceiling_is_accepted_only_where_a_runtime_can_apply_it() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + sandbox + .limits + .as_mut() + .expect("the fixture declares limits") + .max_processes = Some(256); + + sandbox + .validate_for_platform(Platform::Local) + .expect("Docker takes a pids limit"); + + for platform in [Platform::Aws, Platform::Azure, Platform::Kubernetes] { + let error = sandbox + .validate_for_platform(platform) + .expect_err("a process ceiling nothing applies must be refused"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + } + } + + /// Only Kubernetes has a deadline the platform itself enforces (`activeDeadlineSeconds`). + /// Everywhere else a declared ceiling would need a reaper that does not exist. + #[test] + fn a_session_deadline_is_accepted_only_where_the_platform_applies_it() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + sandbox.session.max_lifetime_seconds = Some(3600); + + sandbox + .validate_for_platform(Platform::Kubernetes) + .expect("the kubelet enforces activeDeadlineSeconds"); + + for platform in [Platform::Aws, Platform::Azure, Platform::Local] { + let error = sandbox + .validate_for_platform(platform) + .expect_err("a deadline nothing applies must be refused"); + assert_eq!(error.code, "SANDBOX_CAPABILITY_UNSUPPORTED"); + } + } + + /// A MicroVM bursts to four times its baseline with no way to opt out, so a ceiling is kept + /// by choosing the size whose *peak* fits inside it. Sizing by baseline would hand back a + /// sandbox that can reach four times what the customer declared. + #[test] + fn an_aws_size_is_chosen_so_its_peak_stays_inside_the_declared_ceiling() { + let sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + let tier = sandbox.microvm_tier().expect("2Gi/1cpu/20Gi is satisfiable"); + + assert_eq!(tier.peak_memory_mib, 2048, "the peak is the declared ceiling"); + assert_eq!( + tier.baseline_memory_mib, 512, + "which is a quarter of it as the baseline" + ); + assert!(tier.max_disk_mib <= 20 * 1024); + } + + /// AWS allocates one vCPU per 2GB, so a cpu ceiling below what the memory ceiling implies + /// cannot be honoured together with it. Letting cpu choose the size instead would hand back a + /// machine four times smaller than the memory asked for, with nothing to indicate it. + #[test] + fn a_cpu_ceiling_below_what_the_memory_implies_is_refused_not_quietly_downsized() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + { + let limits = sandbox.limits.as_mut().expect("the fixture declares limits"); + limits.cpu = "1".to_string(); + limits.memory = "8Gi".to_string(); + } + + let error = sandbox + .microvm_tier() + .expect_err("1 cpu and 8Gi cannot both be ceilings on AWS"); + assert!( + error.to_string().contains("4 vCPU"), + "the refusal must say what the memory ceiling implies: {error}" + ); + + sandbox + .limits + .as_mut() + .expect("the fixture declares limits") + .cpu = "4".to_string(); + let tier = sandbox.microvm_tier().expect("4 cpu matches 8Gi"); + assert_eq!(tier.peak_memory_mib, 8192); + } + + /// Below AWS's smallest peak there is no size that holds the ceiling, and rounding up to the + /// nearest one would silently exceed it. + #[test] + fn an_aws_ceiling_smaller_than_any_size_is_refused_rather_than_rounded() { + let mut sandbox = sandbox_with(SandboxEgress::Deny, vec![]); + sandbox + .limits + .as_mut() + .expect("the fixture declares limits") + .memory = "1Gi".to_string(); + + let error = sandbox + .validate_for_platform(Platform::Aws) + .expect_err("no MicroVM size peaks at or below 1Gi"); + assert_eq!(error.code, "SANDBOX_LIMIT_INVALID"); + assert!( + error.to_string().contains("2Gi"), + "the refusal must say what the smallest holdable ceiling is: {error}" + ); + } + + /// `Source` is a public part of the type that no backend builds. Kubernetes used to turn it + /// into an empty image string, producing a pod that could never schedule — the refusal has to + /// happen at plan time and on every platform, not in one emitter. + #[test] + fn source_code_is_refused_everywhere_rather_than_producing_a_broken_manifest() { + let sandbox = Sandbox::new("agent".to_string()) + .code(SandboxCode::Source { + src: "./sandbox".to_string(), + toolchain: ToolchainConfig::Docker { + dockerfile: None, + build_args: None, + target: None, + }, + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build(); + + for platform in [ + Platform::Aws, + Platform::Azure, + Platform::Gcp, + Platform::Kubernetes, + Platform::Local, + ] { + let error = sandbox + .validate_for_platform(platform) + .expect_err("no backend builds a sandbox image from source"); + assert_eq!(error.code, "SANDBOX_LIMIT_INVALID"); + assert!( + error.to_string().contains("code.image"), + "the refusal must say what to write instead: {error}" + ); + } + } + + /// `validate_quantity` accepts nine suffixes. Reading only `Gi` and `Mi` would size a + /// declared `4G` as though it were `4Gi`, which for a ceiling means exceeding it. + #[test] + fn every_accepted_unit_converts_rather_than_falling_back() { + assert_eq!(quantity_mib("2Gi"), Some(2048)); + assert_eq!(quantity_mib("512Mi"), Some(512)); + assert_eq!(quantity_mib("4G"), Some(3814)); + assert_eq!(quantity_mib("1Ti"), Some(1024 * 1024)); + assert_eq!(millicores("1"), Some(1000)); + assert_eq!(millicores("500m"), Some(500)); + } + + #[test] + fn unknown_fields_are_rejected() { + let json = r#"{ + "id": "sbx", + "code": {"type": "image", "image": "ubuntu:24.04"}, + "limits": {"cpu": "1", "memory": "2Gi", "disk": "20Gi"}, + "egress": {"mode": "deny"}, + "session": {}, + "unexpected": true + }"#; + + serde_json::from_str::(json).expect_err("deny_unknown_fields must reject"); + } + + #[test] + fn serialization_roundtrips() { + let sandbox = sandbox_with( + SandboxEgress::AllowDomains { + domains: vec!["example.com".to_string()], + }, + vec![8080, 9090], + ); + + let json = serde_json::to_string(&sandbox).expect("serializes"); + let restored: Sandbox = serde_json::from_str(&json).expect("deserializes"); + assert_eq!(sandbox, restored); + } + + #[test] + fn id_is_immutable_across_updates() { + let original = sandbox_with(SandboxEgress::Deny, vec![]); + let renamed = Sandbox::new("other".to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .limits(original.limits.clone().expect("the fixture declares limits")) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build(); + + original + .validate_update(&original.clone()) + .expect("an unchanged config is a valid update"); + original + .validate_update(&renamed) + .expect_err("renaming a sandbox is not an update"); + } +} diff --git a/crates/alien-core/src/resources/worker.rs b/crates/alien-core/src/resources/worker.rs index 24cef47d3..c49261b10 100644 --- a/crates/alien-core/src/resources/worker.rs +++ b/crates/alien-core/src/resources/worker.rs @@ -204,6 +204,15 @@ pub struct Worker { /// None means platform default applies. pub concurrency_limit: Option, + /// Whether this worker hosts sandbox sessions. + /// + /// Set by preflight, not by an application: on GCP a sandbox is a subprocess of the Cloud Run + /// instance running the app, and the instance can only launch one if its container declares + /// it. Declaring it by hand would be a permission the workload does not need. + #[builder(default)] + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub sandbox_launcher: bool, + /// Optional readiness probe configuration. /// Only applicable for workers with Public ingress. /// When configured, the probe will be executed after provisioning/update to verify the worker is ready. diff --git a/crates/alien-core/src/sandbox_capability.rs b/crates/alien-core/src/sandbox_capability.rs new file mode 100644 index 000000000..8858bd09e --- /dev/null +++ b/crates/alien-core/src/sandbox_capability.rs @@ -0,0 +1,205 @@ +//! Sandbox session capabilities: what the manager mints and the agent verifies. +//! +//! Lives here because both sides need identical rules, and a mismatch between minting and +//! verification is a security bug that only shows up as "it works" until it does not. +//! +//! A capability is scoped to **one session and one operation class**. Provider ids and hostnames +//! are guessable, so neither is authorisation. + +use serde::{Deserialize, Serialize}; + +use crate::error::{ErrorData, Result}; +use alien_error::AlienError; + +/// What a capability permits. Deliberately coarse: a class, not a method list, so adding a +/// method cannot silently widen an already-minted capability. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub enum SandboxOperationClass { + /// Running commands and moving files inside an existing session + Execute, + /// Creating and terminating sessions + Manage, +} + +/// The claims an agent checks before doing anything. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] +#[serde(rename_all = "camelCase")] +pub struct SandboxCapabilityClaims { + /// Session this capability addresses + pub session_id: String, + /// Operation class permitted + pub operation: SandboxOperationClass, + /// Lifecycle generation the session started under + pub generation: u64, + /// Unix seconds after which the capability is void + pub expires_at: i64, + /// Key that signed it, so rotation can retain an overlapping ring + pub key_id: String, +} + +/// What the agent knows about itself, established at session start. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SandboxSessionIdentity { + /// The session this agent serves + pub session_id: String, + /// The generation it started under + pub generation: u64, +} + +impl SandboxCapabilityClaims { + /// Verifies claims against the agent's own identity and the current time. + /// + /// Signature checking happens before this — an unsigned claim never reaches here. What this + /// enforces is everything a valid signature does *not* prove: that the capability is for + /// this session, this generation, this operation, and still in date. + pub fn verify( + &self, + identity: &SandboxSessionIdentity, + required: SandboxOperationClass, + now_unix: i64, + ) -> Result<()> { + // Session first: a capability for another session is the case that matters most, and + // reporting expiry for it would tell an attacker the wrong thing. + if self.session_id != identity.session_id { + return Err(refused("this capability addresses a different session")); + } + + // A running agent cannot observe a generation changed outside it, so terminate fences + // ingress and this check catches anything that slipped through before the fence closed. + if self.generation != identity.generation { + return Err(refused( + "this capability was issued for a previous lifecycle generation", + )); + } + + if self.expires_at <= now_unix { + return Err(refused("this capability has expired")); + } + + // Execute does not imply Manage. Manage does not imply Execute either: the whole point + // of the split is that an app which only runs code cannot terminate sessions. + if self.operation != required { + return Err(refused( + "this capability does not permit this operation class", + )); + } + + Ok(()) + } +} + +fn refused(reason: &str) -> AlienError { + AlienError::new(ErrorData::SandboxCapabilityRefused { + reason: reason.to_string(), + }) +} + +#[cfg(test)] +mod tests { + use super::*; + + const NOW: i64 = 1_000_000; + + fn identity() -> SandboxSessionIdentity { + SandboxSessionIdentity { + session_id: "s1".to_string(), + generation: 2, + } + } + + fn claims() -> SandboxCapabilityClaims { + SandboxCapabilityClaims { + session_id: "s1".to_string(), + operation: SandboxOperationClass::Execute, + generation: 2, + expires_at: NOW + 300, + key_id: "k1".to_string(), + } + } + + #[test] + fn a_matching_capability_is_accepted() { + claims() + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect("a capability for this session, generation and class is valid"); + } + + /// The case that matters most: provider ids are guessable, so a capability + /// minted for one session must be useless against another. + #[test] + fn a_capability_for_another_session_is_refused() { + let mut other = claims(); + other.session_id = "s2".to_string(); + + let error = other + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect_err("session B must not accept session A's capability"); + assert!(error.to_string().contains("different session")); + } + + /// Terminate bumps the generation; anything minted before is void even if + /// its signature and expiry are still good. + #[test] + fn a_capability_from_a_previous_generation_is_refused() { + let mut stale = claims(); + stale.generation = 1; + + let error = stale + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect_err("a previous generation must be refused"); + assert!(error.to_string().contains("generation")); + } + + #[test] + fn an_expired_capability_is_refused() { + let mut expired = claims(); + expired.expires_at = NOW; + + expired + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect_err("expiry is inclusive: a capability expiring now is already void"); + } + + /// The split only means something if it holds in both directions. An execute-only app must + /// not terminate sessions, and a manage-only component must not read session contents. + #[test] + fn operation_classes_do_not_imply_each_other() { + claims() + .verify(&identity(), SandboxOperationClass::Manage, NOW) + .expect_err("execute must not permit manage"); + + let mut manage = claims(); + manage.operation = SandboxOperationClass::Manage; + manage + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect_err("manage must not permit execute"); + } + + /// Checked before expiry on purpose: telling a caller "expired" for a capability that was + /// never theirs leaks which sessions exist. + #[test] + fn a_wrong_session_is_reported_as_wrong_session_even_when_also_expired() { + let mut wrong = claims(); + wrong.session_id = "s2".to_string(); + wrong.expires_at = NOW - 1; + + let error = wrong + .verify(&identity(), SandboxOperationClass::Execute, NOW) + .expect_err("refused"); + assert!( + error.to_string().contains("different session"), + "the reason must not reveal that some other session's capability had expired" + ); + } + + #[test] + fn claims_round_trip_so_minting_and_verification_cannot_drift() { + let json = serde_json::to_string(&claims()).expect("serializes"); + let restored: SandboxCapabilityClaims = + serde_json::from_str(&json).expect("deserializes"); + assert_eq!(claims(), restored); + } +} diff --git a/crates/alien-core/src/sandbox_capability_token.rs b/crates/alien-core/src/sandbox_capability_token.rs new file mode 100644 index 000000000..312cd5b4d --- /dev/null +++ b/crates/alien-core/src/sandbox_capability_token.rs @@ -0,0 +1,210 @@ +//! Wire format for a sandbox capability: the bytes that carry [`SandboxCapabilityClaims`] +//! from the manager that mints one to the agent that checks it. +//! +//! Minting and verification live in the same module because a difference between them is a +//! security bug that presents as "it works" right up until it does not. +//! +//! ```text +//! base64url(claims_json) "." base64url(signature) +//! ``` +//! +//! The signature covers the **encoded** claims segment, and verification runs against the +//! exact bytes that arrived. That removes canonicalisation from the trust path entirely: there +//! is no re-serialization step whose output could differ from what was signed. + +use base64::engine::general_purpose::URL_SAFE_NO_PAD; +use base64::Engine as _; +use ed25519_compact::{PublicKey, SecretKey, Signature}; + +use crate::error::{ErrorData, Result}; +use crate::sandbox_capability::{ + SandboxCapabilityClaims, SandboxOperationClass, SandboxSessionIdentity, +}; +use alien_error::{AlienError, Context, IntoAlienError}; + +/// Signs claims into a capability token. +/// +/// The manager holds the secret key; it never enters deployment state and never reaches a +/// sandbox — see `crates/alien-infra/AGENTS.md` on raw secrets in resource configs. +pub fn mint(claims: &SandboxCapabilityClaims, secret_key: &SecretKey) -> Result { + let json = serde_json::to_vec(claims) + .into_alien_error() + .context(ErrorData::JsonSerializationFailed { + reason: "Failed to serialize sandbox capability claims".to_string(), + })?; + + let payload = URL_SAFE_NO_PAD.encode(json); + let signature = secret_key.sign(payload.as_bytes(), None); + + Ok(format!( + "{payload}.{}", + URL_SAFE_NO_PAD.encode(signature.as_ref()) + )) +} + +/// Verifies a token's signature and its claims, returning them only if both hold. +/// +/// Order matters: the signature is checked before the claims are parsed, so malformed JSON +/// from an unsigned source is never handed to the deserializer. +pub fn verify( + token: &str, + public_key: &PublicKey, + identity: &SandboxSessionIdentity, + required: SandboxOperationClass, + now_unix: i64, +) -> Result { + let (payload, signature) = token + .split_once('.') + .ok_or_else(|| refused("token is malformed"))?; + + // A second separator means a third segment nobody agreed on. Refusing beats ignoring it. + if signature.contains('.') { + return Err(refused("token is malformed")); + } + + let signature_bytes = URL_SAFE_NO_PAD + .decode(signature) + .map_err(|_| refused("token is malformed"))?; + let signature = + Signature::from_slice(&signature_bytes).map_err(|_| refused("token is malformed"))?; + + public_key + .verify(payload.as_bytes(), &signature) + .map_err(|_| refused("token signature is not valid"))?; + + let json = URL_SAFE_NO_PAD + .decode(payload) + .map_err(|_| refused("token is malformed"))?; + let claims: SandboxCapabilityClaims = + serde_json::from_slice(&json).map_err(|_| refused("token is malformed"))?; + + claims.verify(identity, required, now_unix)?; + + Ok(claims) +} + +fn refused(reason: &str) -> AlienError { + AlienError::new(ErrorData::SandboxCapabilityRefused { + reason: reason.to_string(), + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use ed25519_compact::KeyPair; + + const NOW: i64 = 1_000_000; + + fn identity() -> SandboxSessionIdentity { + SandboxSessionIdentity { + session_id: "s1".to_string(), + generation: 2, + } + } + + fn claims() -> SandboxCapabilityClaims { + SandboxCapabilityClaims { + session_id: "s1".to_string(), + operation: SandboxOperationClass::Execute, + generation: 2, + expires_at: NOW + 300, + key_id: "k1".to_string(), + } + } + + fn keypair() -> KeyPair { + KeyPair::from_seed(ed25519_compact::Seed::new([7u8; 32])) + } + + #[test] + fn a_minted_token_verifies_and_returns_its_claims() { + let keys = keypair(); + let token = mint(&claims(), &keys.sk).expect("mints"); + + let verified = verify( + &token, + &keys.pk, + &identity(), + SandboxOperationClass::Execute, + NOW, + ) + .expect("a token this key signed, for this session, is valid"); + + assert_eq!(verified, claims()); + } + + /// The claims travel in the clear, so the signature is the only thing stopping a caller + /// from writing its own. This is the test that proves it is load-bearing. + #[test] + fn claims_edited_after_minting_are_refused() { + let keys = keypair(); + let token = mint(&claims(), &keys.sk).expect("mints"); + + let mut escalated = claims(); + escalated.operation = SandboxOperationClass::Manage; + let forged_payload = URL_SAFE_NO_PAD.encode(serde_json::to_vec(&escalated).unwrap()); + let signature = token.split_once('.').unwrap().1; + + let error = verify( + &format!("{forged_payload}.{signature}"), + &keys.pk, + &identity(), + SandboxOperationClass::Manage, + NOW, + ) + .expect_err("swapping the claims must invalidate the signature"); + assert!(error.to_string().contains("signature")); + } + + #[test] + fn a_token_signed_by_another_key_is_refused() { + let token = mint(&claims(), &keypair().sk).expect("mints"); + let other = KeyPair::from_seed(ed25519_compact::Seed::new([9u8; 32])); + + verify( + &token, + &other.pk, + &identity(), + SandboxOperationClass::Execute, + NOW, + ) + .expect_err("a key the agent does not hold must not authorise anything"); + } + + /// The claim checks are not bypassed by a good signature: a correctly signed capability + /// for another session is still refused. + #[test] + fn a_validly_signed_token_still_fails_its_claim_checks() { + let keys = keypair(); + let mut other_session = claims(); + other_session.session_id = "s2".to_string(); + let token = mint(&other_session, &keys.sk).expect("mints"); + + let error = verify( + &token, + &keys.pk, + &identity(), + SandboxOperationClass::Execute, + NOW, + ) + .expect_err("a signature does not make a capability applicable"); + assert!(error.to_string().contains("different session")); + } + + #[test] + fn a_malformed_token_is_refused_without_panicking() { + let keys = keypair(); + + for token in ["", ".", "not-a-token", "a.b", "a.b.c", "$$$.$$$"] { + verify( + token, + &keys.pk, + &identity(), + SandboxOperationClass::Execute, + NOW, + ) + .expect_err("malformed input must be refused, never parsed leniently"); + } + } +} diff --git a/crates/alien-manager/src/registry_access.rs b/crates/alien-manager/src/registry_access.rs index 84146f1e4..3955db111 100644 --- a/crates/alien-manager/src/registry_access.rs +++ b/crates/alien-manager/src/registry_access.rs @@ -807,6 +807,7 @@ mod tests { ) -> BindingResult> { Err(missing_binding(binding_name)) } + } fn aws_state_with_stack(stack: Stack) -> DeploymentState { diff --git a/crates/alien-manager/src/routes/registry_proxy.rs b/crates/alien-manager/src/routes/registry_proxy.rs index e51a57d51..3546e854e 100644 --- a/crates/alien-manager/src/routes/registry_proxy.rs +++ b/crates/alien-manager/src/routes/registry_proxy.rs @@ -1699,6 +1699,7 @@ mod tests { { Err(route_test_error(binding_name)) } + } #[test] diff --git a/crates/alien-preflights/src/compile_time/allowed_user_resources.rs b/crates/alien-preflights/src/compile_time/allowed_user_resources.rs index 8e6dbef10..b27e038d5 100644 --- a/crates/alien-preflights/src/compile_time/allowed_user_resources.rs +++ b/crates/alien-preflights/src/compile_time/allowed_user_resources.rs @@ -41,6 +41,7 @@ impl CompileTimeCheck for AllowedUserResourcesCheck { "postgres", "ai", "email", + "sandbox", "experimental/aws-opensearch", ]); let mut errors = Vec::new(); diff --git a/crates/alien-preflights/src/compile_time/mod.rs b/crates/alien-preflights/src/compile_time/mod.rs index 2e676b52b..9db12d35c 100644 --- a/crates/alien-preflights/src/compile_time/mod.rs +++ b/crates/alien-preflights/src/compile_time/mod.rs @@ -12,6 +12,8 @@ pub mod network_required; pub mod permission_profiles_exist; pub mod public_worker_lifecycle; pub mod resource_enabled_valid; +pub mod sandbox_host_required; +pub mod sandbox_platform_support; pub mod resource_id_pattern; pub mod resource_name_length; pub mod resource_references_exist; diff --git a/crates/alien-preflights/src/compile_time/network_required.rs b/crates/alien-preflights/src/compile_time/network_required.rs index 28c315794..0938b1ab6 100644 --- a/crates/alien-preflights/src/compile_time/network_required.rs +++ b/crates/alien-preflights/src/compile_time/network_required.rs @@ -22,6 +22,9 @@ const RESOURCE_TYPES_REQUIRING_NETWORK: &[&str] = &[ "compute-cluster", // ASGs/MIGs/VMSSs need VPC subnets "daemon", // Transforms into compute-cluster in Phase 2 -> needs VPC "postgres", // Needs a VPC on cloud (private-only DB); no-op on Local + // A sandbox's egress runs through a VPC connector, and that connector needs subnets. + // Omitting it does not deny egress on AWS — it leaves the public internet on. + "sandbox", ]; /// Check if any resource in the stack requires VPC networking. diff --git a/crates/alien-preflights/src/compile_time/sandbox_host_required.rs b/crates/alien-preflights/src/compile_time/sandbox_host_required.rs new file mode 100644 index 000000000..42769ec3b --- /dev/null +++ b/crates/alien-preflights/src/compile_time/sandbox_host_required.rs @@ -0,0 +1,194 @@ +//! A GCP Sandbox needs a Cloud Run workload to live inside. +//! +//! Unlike every other platform, GCP provisions nothing durable for a sandbox: `sandboxLauncher` +//! is a field on the Cloud Run service that hosts the app, and sandboxes are subprocesses of +//! that service's own instance. So a Sandbox declared on GCP with nothing to host it is not a +//! resource waiting to be created — it is a stack that can never work. +//! +//! Catching it here means a clear error at plan time rather than a deploy that succeeds and +//! then fails at the first `create()`. + +use crate::error::Result; +use crate::{CheckResult, CompileTimeCheck}; +use alien_core::{Platform, Sandbox, Stack}; + +/// Resource types that run on Cloud Run and can therefore host a sandbox. +/// +/// Worker alone. A GCP Container runs on a ComputeCluster rather than Cloud Run, so +/// `sandboxLauncher` has nothing to be set on and a stack hosted only by a Container would pass +/// this check and then fail at the first `create()`. +const SANDBOX_HOST_TYPES: &[&str] = &["worker"]; + +/// Ensures a GCP Sandbox has a Cloud Run workload to host it. +pub struct SandboxHostRequiredCheck; + +#[async_trait::async_trait] +impl CompileTimeCheck for SandboxHostRequiredCheck { + fn description(&self) -> &'static str { + "A Sandbox on GCP requires a Cloud Run workload to host it" + } + + fn should_run(&self, stack: &Stack, platform: Platform) -> bool { + // GCP alone: every other platform provisions a durable parent of its own. + platform == Platform::Gcp + && stack + .resources() + .any(|(_, entry)| entry.config.resource_type().as_ref() == Sandbox::RESOURCE_TYPE.as_ref()) + } + + async fn check(&self, stack: &Stack, _platform: Platform) -> Result { + let hosts: Vec<&str> = stack + .resources() + .filter(|(_, entry)| { + SANDBOX_HOST_TYPES.contains(&entry.config.resource_type().as_ref()) + }) + .map(|(id, _)| id.as_str()) + .collect(); + + if !hosts.is_empty() { + return Ok(CheckResult::success()); + } + + let sandboxes: Vec<&str> = stack + .resources() + .filter(|(_, entry)| { + entry.config.resource_type().as_ref() == Sandbox::RESOURCE_TYPE.as_ref() + }) + .map(|(id, _)| id.as_str()) + .collect(); + + Ok(CheckResult::failed( + sandboxes + .into_iter() + .map(|id| { + format!( + "Sandbox '{id}' targets GCP, where a sandbox runs inside the Cloud Run \ + service that hosts your app. This stack declares no Worker for it to run \ + in — a Container runs on a compute cluster, not on Cloud Run. Add a \ + Worker, or target a platform that provisions sandboxes independently." + ) + }) + .collect(), + )) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alien_core::{ + ResourceEntry, ResourceLifecycle, Sandbox, SandboxCode, SandboxEgress, SandboxLimits, + SandboxSessionPolicy, Worker, WorkerCode, + }; + use indexmap::IndexMap; + + fn sandbox_config() -> Sandbox { + Sandbox::new("agent".to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .limits(SandboxLimits { + cpu: "1".to_string(), + memory: "2Gi".to_string(), + disk: "20Gi".to_string(), + max_processes: None, + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build() + } + + fn entry(config: alien_core::Resource) -> ResourceEntry { + ResourceEntry { + config, + lifecycle: ResourceLifecycle::Live, + dependencies: Vec::new(), + remote_access: false, + enabled_when: None, + } + } + + fn stack(include_worker: bool, include_sandbox: bool) -> Stack { + let mut resources = IndexMap::new(); + if include_sandbox { + resources.insert( + "agent".to_string(), + entry(alien_core::Resource::new(sandbox_config())), + ); + } + if include_worker { + let worker = Worker::new("api".to_string()) + .permissions("execution".to_string()) + .code(WorkerCode::Image { + image: "registry.example.com/api:latest".to_string(), + }) + .build(); + resources.insert("api".to_string(), entry(alien_core::Resource::new(worker))); + } + + Stack { + id: "test-stack".to_string(), + resources, + permissions: alien_core::permissions::PermissionsConfig::default(), + supported_platforms: None, + inputs: vec![], + } + } + + #[tokio::test] + async fn a_gcp_sandbox_with_no_cloud_run_host_fails_at_plan_time() { + let stack = stack(false, true); + let check = SandboxHostRequiredCheck; + + assert!(check.should_run(&stack, Platform::Gcp)); + + let result = check.check(&stack, Platform::Gcp).await.expect("check runs"); + assert!(!result.success, "a sandbox with no host must not pass"); + + let rendered = result.errors.join(" "); + assert!(rendered.contains("agent"), "names the sandbox: {rendered}"); + assert!( + rendered.contains("Add a Worker"), + "says what to add rather than only what is wrong: {rendered}" + ); + } + + #[tokio::test] + async fn a_gcp_sandbox_alongside_a_worker_passes() { + let result = SandboxHostRequiredCheck + .check(&stack(true, true), Platform::Gcp) + .await + .expect("check runs"); + + assert!(result.success); + assert!(result.errors.is_empty()); + } + + /// Every other platform provisions a durable parent, so the requirement is GCP's alone and + /// running it elsewhere would reject valid stacks. + #[tokio::test] + async fn the_check_is_scoped_to_gcp() { + let stack = stack(false, true); + let check = SandboxHostRequiredCheck; + + for platform in [ + Platform::Aws, + Platform::Azure, + Platform::Kubernetes, + Platform::Local, + ] { + assert!( + !check.should_run(&stack, platform), + "{platform} provisions its own parent and must not require a host" + ); + } + } + + #[tokio::test] + async fn a_stack_with_no_sandbox_is_not_checked() { + assert!(!SandboxHostRequiredCheck.should_run(&stack(true, false), Platform::Gcp)); + } +} diff --git a/crates/alien-preflights/src/compile_time/sandbox_platform_support.rs b/crates/alien-preflights/src/compile_time/sandbox_platform_support.rs new file mode 100644 index 000000000..961b07a87 --- /dev/null +++ b/crates/alien-preflights/src/compile_time/sandbox_platform_support.rs @@ -0,0 +1,174 @@ +//! Runs each Sandbox's per-platform capability gate at plan time. +//! +//! `Sandbox::validate_for_platform` refuses a declaration the target backend cannot deliver — +//! ceilings a platform does not enforce, domain egress rules it cannot express, preview ports or +//! idle suspend it does not have. Without a caller it refuses nothing, and the failure arrives at +//! the first `create()` on a deployed stack instead. + +use crate::error::Result; +use crate::{CheckResult, CompileTimeCheck}; +use alien_core::{Platform, Sandbox, Stack}; + +/// Ensures every Sandbox can be delivered by the platform it targets. +pub struct SandboxPlatformSupportCheck; + +#[async_trait::async_trait] +impl CompileTimeCheck for SandboxPlatformSupportCheck { + fn description(&self) -> &'static str { + "A Sandbox must declare only what its target platform can enforce" + } + + fn should_run(&self, stack: &Stack, _platform: Platform) -> bool { + stack.resources().any(|(_, entry)| { + entry.config.resource_type().as_ref() == Sandbox::RESOURCE_TYPE.as_ref() + }) + } + + async fn check(&self, stack: &Stack, platform: Platform) -> Result { + let errors: Vec = stack + .resources() + .filter_map(|(_, entry)| entry.config.downcast_ref::()) + .filter_map(|sandbox| { + sandbox + .validate_for_platform(platform) + .err() + // A capability refusal names the platform and the capability, which is the + // right shape for the runtime caller but leaves a deployer with several + // sandboxes unable to tell which declaration to change. + .map(|error| format!("Sandbox '{}': {error}", sandbox.id())) + }) + .collect(); + + if errors.is_empty() { + Ok(CheckResult::success()) + } else { + Ok(CheckResult::failed(errors)) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alien_core::{ + ResourceEntry, ResourceLifecycle, SandboxCode, SandboxEgress, SandboxLimits, + SandboxSessionPolicy, + }; + use indexmap::IndexMap; + + fn stack_with(sandbox: Sandbox) -> Stack { + let mut resources = IndexMap::new(); + resources.insert( + sandbox.id().to_string(), + ResourceEntry { + config: alien_core::Resource::new(sandbox), + lifecycle: ResourceLifecycle::Frozen, + dependencies: Vec::new(), + remote_access: false, + enabled_when: None, + }, + ); + Stack { + id: "test-stack".to_string(), + resources, + permissions: alien_core::permissions::PermissionsConfig::default(), + supported_platforms: None, + inputs: vec![], + } + } + + fn sandbox(id: &str, limits: Option, egress: SandboxEgress) -> Sandbox { + let builder = Sandbox::new(id.to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .egress(egress) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }); + match limits { + Some(limits) => builder.limits(limits).build(), + None => builder.build(), + } + } + + fn ceilings() -> SandboxLimits { + SandboxLimits { + cpu: "1".to_string(), + memory: "2Gi".to_string(), + disk: "20Gi".to_string(), + max_processes: None, + } + } + + /// GCP runs sandboxes as subprocesses of the app's own Cloud Run instance, which applies no + /// per-sandbox ceiling. A stack that declares one reads as bounded while the sandbox is not. + #[tokio::test] + async fn ceilings_on_a_platform_that_ignores_them_fail_at_plan_time() { + let stack = stack_with(sandbox("agent", Some(ceilings()), SandboxEgress::Deny)); + + let result = SandboxPlatformSupportCheck + .check(&stack, Platform::Gcp) + .await + .expect("check runs"); + + assert!(!result.success, "unenforceable ceilings must not pass"); + let rendered = result.errors.join(" "); + assert!(rendered.contains("agent"), "names the sandbox: {rendered}"); + } + + /// The same declaration is fine where the platform enforces it. + #[tokio::test] + async fn the_same_ceilings_pass_where_they_are_enforced() { + let stack = stack_with(sandbox("agent", Some(ceilings()), SandboxEgress::Deny)); + + for platform in [Platform::Aws, Platform::Kubernetes] { + let result = SandboxPlatformSupportCheck + .check(&stack, platform) + .await + .expect("check runs"); + assert!( + result.success, + "{platform} enforces ceilings: {:?}", + result.errors + ); + } + } + + /// No backend expresses a hostname allowlist, so the declaration is refused everywhere + /// rather than accepted and dropped. + #[tokio::test] + async fn domain_egress_rules_are_refused_where_they_cannot_be_expressed() { + let stack = stack_with(sandbox( + "agent", + None, + SandboxEgress::AllowDomains { + domains: vec!["registry.npmjs.org".to_string()], + }, + )); + + for platform in [Platform::Aws, Platform::Azure, Platform::Gcp, Platform::Kubernetes] { + let result = SandboxPlatformSupportCheck + .check(&stack, platform) + .await + .expect("check runs"); + assert!( + !result.success, + "{platform} has no hostname allowlist and must refuse the declaration" + ); + } + } + + #[tokio::test] + async fn a_stack_with_no_sandbox_is_not_checked() { + let stack = Stack { + id: "test-stack".to_string(), + resources: IndexMap::new(), + permissions: alien_core::permissions::PermissionsConfig::default(), + supported_platforms: None, + inputs: vec![], + }; + assert!(!SandboxPlatformSupportCheck.should_run(&stack, Platform::Aws)); + } +} diff --git a/crates/alien-preflights/src/lib.rs b/crates/alien-preflights/src/lib.rs index 6ba87fa5d..50dcf8b4b 100644 --- a/crates/alien-preflights/src/lib.rs +++ b/crates/alien-preflights/src/lib.rs @@ -338,6 +338,12 @@ impl PreflightRegistry { )); registry.add_compile_time_check(Box::new(compile_time::NetworkSettingsPlatformCheck)); registry.add_compile_time_check(Box::new(compile_time::PublicSubnetsRequiredCheck)); + registry.add_compile_time_check(Box::new( + compile_time::sandbox_host_required::SandboxHostRequiredCheck, + )); + registry.add_compile_time_check(Box::new( + compile_time::sandbox_platform_support::SandboxPlatformSupportCheck, + )); registry.add_compile_time_check(Box::new(compile_time::PermissionProfilesExistCheck)); registry.add_compile_time_check(Box::new(compile_time::SingleExposedPortCheck)); registry.add_compile_time_check(Box::new(compile_time::ResourceNameLengthCheck)); @@ -434,6 +440,7 @@ impl PreflightRegistry { // These scan resource types to decide what to create, so they must see all // resources from Phase 2 (vault, etc.) registry.add_mutation(Box::new(mutations::AzureServiceActivationMutation)); + registry.add_mutation(Box::new(mutations::GcpSandboxLauncherMutation)); registry.add_mutation(Box::new(mutations::GcpServiceActivationMutation)); registry.add_mutation(Box::new(mutations::AzureContainerAppsEnvironmentMutation)); registry.add_mutation(Box::new(mutations::AzureServiceBusNamespaceMutation)); diff --git a/crates/alien-preflights/src/mutations/gcp_sandbox_launcher.rs b/crates/alien-preflights/src/mutations/gcp_sandbox_launcher.rs new file mode 100644 index 000000000..1b0740219 --- /dev/null +++ b/crates/alien-preflights/src/mutations/gcp_sandbox_launcher.rs @@ -0,0 +1,156 @@ +//! Marks the Cloud Run workers that host a GCP stack's sandbox sessions. +//! +//! GCP provisions nothing durable for a sandbox: a session is a subprocess of the Cloud Run +//! instance already running the application, and an instance can only launch one if its container +//! declares `sandboxLauncher`. Nothing in an application's own declaration says which worker that +//! is, so preflight decides it — the same reason `SandboxHostRequiredCheck` refuses a GCP sandbox +//! with no Cloud Run host at all. + +use crate::error::Result; +use crate::StackMutation; +use alien_core::{DeploymentConfig, Platform, Sandbox, Stack, StackState, Worker}; +use async_trait::async_trait; +use tracing::info; + +pub struct GcpSandboxLauncherMutation; + +impl GcpSandboxLauncherMutation { + fn stack_has_a_sandbox(stack: &Stack) -> bool { + stack.resources.values().any(|entry| { + entry.config.resource_type().as_ref() == Sandbox::RESOURCE_TYPE.as_ref() + }) + } +} + +#[async_trait] +impl StackMutation for GcpSandboxLauncherMutation { + fn description(&self) -> &'static str { + "Let the Cloud Run workers hosting a GCP sandbox launch sessions" + } + + fn should_run( + &self, + stack: &Stack, + stack_state: &StackState, + _config: &DeploymentConfig, + ) -> bool { + stack_state.platform == Platform::Gcp && Self::stack_has_a_sandbox(stack) + } + + async fn mutate( + &self, + mut stack: Stack, + _stack_state: &StackState, + _config: &DeploymentConfig, + ) -> Result { + // Every worker, not a chosen one: a session is created through the binding, and any + // worker holding that binding can be the one that asks. Marking a subset would make + // which instance served the request decide whether the call worked. + for (id, entry) in &mut stack.resources { + let Some(worker) = entry.config.downcast_mut::() else { + continue; + }; + if worker.sandbox_launcher { + continue; + } + worker.sandbox_launcher = true; + info!(worker = %id, "Worker may launch sandbox sessions"); + } + + Ok(stack) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alien_core::{ + PermissionsConfig, ResourceLifecycle, SandboxCode, SandboxEgress, SandboxSessionPolicy, + StackSettings, WorkerCode, + }; + + fn config() -> DeploymentConfig { + DeploymentConfig::builder() + .stack_settings(StackSettings::default()) + .environment_variables(alien_core::EnvironmentVariablesSnapshot { + variables: Vec::new(), + hash: String::new(), + created_at: "2024-01-01T00:00:00Z".to_string(), + }) + .allow_frozen_changes(false) + .external_bindings(alien_core::ExternalBindings::default()) + .build() + } + + fn stack(with_sandbox: bool) -> Stack { + let mut builder = Stack::new("gcp-sandbox".to_string()) + .permissions(PermissionsConfig::new()) + .add( + Worker::new("api".to_string()) + .permissions("execution".to_string()) + .code(WorkerCode::Image { + image: "registry.example.com/api:latest".to_string(), + }) + .build(), + ResourceLifecycle::Live, + ); + if with_sandbox { + builder = builder.add( + Sandbox::new("agent".to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }) + .build(), + ResourceLifecycle::Frozen, + ); + } + builder.build() + } + + fn launcher(stack: &Stack, id: &str) -> bool { + stack + .resources + .get(id) + .and_then(|entry| entry.config.downcast_ref::()) + .expect("the worker") + .sandbox_launcher + } + + /// Without this the deploy succeeds and the first `create()` fails, which is the silent + /// failure the capability contract exists to prevent. + #[tokio::test] + async fn a_gcp_worker_hosting_a_sandbox_is_marked_as_a_launcher() { + let stack = stack(true); + let state = StackState::new(Platform::Gcp); + + assert!(GcpSandboxLauncherMutation.should_run(&stack, &state, &config())); + let mutated = GcpSandboxLauncherMutation + .mutate(stack, &state, &config()) + .await + .expect("mutation runs"); + + assert!(launcher(&mutated, "api")); + } + + /// The flag is a Cloud Run permission, so a stack that declares no sandbox must not acquire + /// it — and no other platform reads it at all. + #[tokio::test] + async fn nothing_is_marked_without_a_sandbox_or_off_gcp() { + let config = config(); + assert!(!GcpSandboxLauncherMutation.should_run( + &stack(false), + &StackState::new(Platform::Gcp), + &config + )); + assert!(!GcpSandboxLauncherMutation.should_run( + &stack(true), + &StackState::new(Platform::Aws), + &config + )); + } +} diff --git a/crates/alien-preflights/src/mutations/mod.rs b/crates/alien-preflights/src/mutations/mod.rs index cdf78b8c4..81aa801bf 100644 --- a/crates/alien-preflights/src/mutations/mod.rs +++ b/crates/alien-preflights/src/mutations/mod.rs @@ -8,6 +8,7 @@ pub mod azure_service_activation; pub mod azure_service_bus_namespace; pub mod azure_storage_account; pub mod compute_cluster; +pub mod gcp_sandbox_launcher; pub mod gcp_service_activation; pub mod infrastructure_dependencies; pub mod kubernetes_cluster; @@ -38,6 +39,7 @@ pub use azure_service_activation::AzureServiceActivationMutation; pub use azure_service_bus_namespace::AzureServiceBusNamespaceMutation; pub use azure_storage_account::AzureStorageAccountMutation; pub use compute_cluster::ComputeClusterMutation; +pub use gcp_sandbox_launcher::GcpSandboxLauncherMutation; pub use gcp_service_activation::GcpServiceActivationMutation; pub use infrastructure_dependencies::InfrastructureDependenciesMutation; pub use kubernetes_cluster::KubernetesClusterMutation; diff --git a/crates/alien-preflights/src/mutations/resource_link_permissions.rs b/crates/alien-preflights/src/mutations/resource_link_permissions.rs index 77760e9d3..2c05f6de9 100644 --- a/crates/alien-preflights/src/mutations/resource_link_permissions.rs +++ b/crates/alien-preflights/src/mutations/resource_link_permissions.rs @@ -9,8 +9,8 @@ use crate::error::Result; use crate::StackMutation; use alien_core::permissions::PermissionSetReference; use alien_core::{ - Build, Container, Daemon, DeploymentConfig, Kv, Queue, ResourceRef, Stack, StackState, Storage, - Vault, Worker, WorkerTrigger, + Build, Container, Daemon, DeploymentConfig, Kv, Queue, ResourceRef, Sandbox, Stack, StackState, + Storage, Vault, Worker, WorkerTrigger, }; use async_trait::async_trait; use tracing::{debug, info}; @@ -160,6 +160,11 @@ fn permission_sets_for_link(link: &ResourceRef) -> Option<&'static [&'static str Some(&["kv/data-write"]) } else if link.resource_type().as_ref() == Vault::RESOURCE_TYPE.as_ref() { Some(&["vault/data-read", "vault/data-write"]) + } else if link.resource_type().as_ref() == Sandbox::RESOURCE_TYPE.as_ref() { + // Execute only. Creating and terminating sessions is `sandbox/management`, which an app + // grants explicitly — a link should not hand out session lifecycle control over a + // resource that runs untrusted code. + Some(&["sandbox/execute"]) } else { None } diff --git a/crates/alien-preflights/tests/sandbox_platform_gate.rs b/crates/alien-preflights/tests/sandbox_platform_gate.rs new file mode 100644 index 000000000..921b70dd0 --- /dev/null +++ b/crates/alien-preflights/tests/sandbox_platform_gate.rs @@ -0,0 +1,92 @@ +//! The Sandbox per-platform gate, driven through the preflight runner. +//! +//! `Sandbox::validate_for_platform` sat unregistered for the whole of this resource's +//! development, and its own unit tests never caught that because they called the method. These +//! run `PreflightRunner::run_compile_time_checks` against the built-in registry, so a check that +//! stops being registered fails here. + +use alien_core::{ + PermissionProfile, PermissionsConfig, Platform, Sandbox, SandboxCode, SandboxEgress, + SandboxLimits, SandboxSessionPolicy, Stack, Worker, WorkerCode, +}; +use alien_preflights::runner::PreflightRunner; + +fn stack_with(sandbox: Sandbox) -> Stack { + // GCP is the platform whose ceilings are unenforceable, and it also requires a Cloud Run host + // for any sandbox at all. The worker is here so the gate under test is the one that fires. + Stack::new("sandbox-gate".to_string()) + .permissions(PermissionsConfig::new().with_profile("execution", PermissionProfile::new())) + .add( + Worker::new("api".to_string()) + .permissions("execution".to_string()) + .code(WorkerCode::Image { + image: "registry.example.com/api:latest".to_string(), + }) + .build(), + alien_core::ResourceLifecycle::Live, + ) + .add(sandbox, alien_core::ResourceLifecycle::Frozen) + .build() +} + +fn sandbox(limits: Option) -> Sandbox { + let builder = Sandbox::new("agent".to_string()) + .code(SandboxCode::Image { + image: "ubuntu:24.04".to_string(), + }) + .egress(SandboxEgress::Deny) + .session(SandboxSessionPolicy { + max_lifetime_seconds: None, + idle_suspend_seconds: None, + }); + match limits { + Some(limits) => builder.limits(limits).build(), + None => builder.build(), + } +} + +/// A GCP sandbox runs as a subprocess of the app's own Cloud Run instance, which applies no +/// per-sandbox ceiling. Declaring one has to fail before anything is provisioned, or the stack +/// reads as bounded while the sandbox is not. +#[tokio::test] +async fn declared_ceilings_fail_preflight_on_a_platform_that_ignores_them() { + let stack = stack_with(sandbox(Some(SandboxLimits { + cpu: "1".to_string(), + memory: "2Gi".to_string(), + disk: "20Gi".to_string(), + max_processes: None, + }))); + + let summary = PreflightRunner::new() + .run_compile_time_checks(&stack, Platform::Gcp) + .await + .expect("compile-time checks run"); + + assert!( + !summary.success, + "unenforceable ceilings must fail preflight, not reach a deployment" + ); + let rendered = format!("{summary:?}"); + assert!( + rendered.contains("agent"), + "the failure must name the sandbox to change: {rendered}" + ); + assert!( + rendered.contains("enforcedLimits"), + "and the capability that is missing: {rendered}" + ); +} + +/// The same stack without ceilings passes, so the failure above is the gate and not the fixture. +#[tokio::test] +async fn the_same_stack_without_ceilings_passes_preflight() { + let summary = PreflightRunner::new() + .run_compile_time_checks(&stack_with(sandbox(None)), Platform::Gcp) + .await + .expect("compile-time checks run"); + + assert!( + summary.success, + "no declaration, nothing to refuse: {summary:?}" + ); +} diff --git a/packages/core/src/__tests__/gateability.test.ts b/packages/core/src/__tests__/gateability.test.ts index 0251ea3e6..4583f6e1d 100644 --- a/packages/core/src/__tests__/gateability.test.ts +++ b/packages/core/src/__tests__/gateability.test.ts @@ -39,6 +39,12 @@ const builders: Record object> = { .memory("256Mi") .permissions("execution"), email: () => new alien.Email("fixture"), + sandbox: () => + new alien.Sandbox("fixture") + .code({ type: "image", image: IMAGE }) + .limits({ cpu: "1", memory: "2Gi", disk: "20Gi", maxProcesses: 256 }) + .egress({ mode: "deny" }) + .session({ maxLifetimeSeconds: 3600 }), "experimental/aws-opensearch": () => new alien.experimental.AwsOpenSearch("fixture"), } diff --git a/packages/core/src/__tests__/sandbox.test.ts b/packages/core/src/__tests__/sandbox.test.ts new file mode 100644 index 000000000..4d154c562 --- /dev/null +++ b/packages/core/src/__tests__/sandbox.test.ts @@ -0,0 +1,72 @@ +import { describe, expect, it } from "vitest" +import { Sandbox } from "../sandbox.js" + +const limits = { cpu: "1", memory: "2Gi", disk: "20Gi", maxProcesses: 256 } +const session = { maxLifetimeSeconds: 3600 } + +function complete() { + return new Sandbox("agent") + .code({ type: "image", image: "ubuntu:24.04" }) + .limits(limits) + .egress({ mode: "deny" }) + .session(session) +} + +describe("Sandbox", () => { + it("builds a complete declaration", () => { + const r = complete().build() + + expect(r.config.type).toBe("sandbox") + expect(r.config.id).toBe("agent") + expect(r.config.limits).toEqual(limits) + expect(r.config.egress).toEqual({ mode: "deny" }) + }) + + // Ceilings are optional because not every platform can enforce them. Declaring none takes the + // platform's own; declaring them where they cannot be enforced is what gets rejected, and that + // rejection happens at plan time against the target platform rather than here. + it("accepts a declaration that names no ceilings", () => { + const sandbox = new Sandbox("agent") + .code({ type: "image", image: "ubuntu:24.04" }) + .egress({ mode: "deny" }) + .session(session) + + expect(sandbox.build().config.limits).toBeUndefined() + }) + + it("refuses a declaration missing its egress policy", () => { + const sandbox = new Sandbox("agent") + .code({ type: "image", image: "ubuntu:24.04" }) + .limits(limits) + .session(session) + + expect(() => sandbox.build()).toThrow() + }) + + it("carries a hostname allowlist through the schema", () => { + const r = complete() + .egress({ mode: "allowDomains", domains: ["example.com"] }) + .build() + + expect(r.config.egress).toEqual({ mode: "allowDomains", domains: ["example.com"] }) + }) + + it("carries declared preview ports", () => { + const r = complete().previewPorts([8080, 9090]).build() + expect(r.config.previewPorts).toEqual([8080, 9090]) + }) + + // The schema refuses unknown fields, so writing to the builder's private state cannot smuggle + // one into the built config. + it("strips an unknown field at build time", () => { + const sandbox = complete() + ;(sandbox as unknown as { _config: Record })._config.anonymous = true + + const r = sandbox.build() + expect(r.config).not.toHaveProperty("anonymous") + }) + + it("exposes the resource type for permission targets", () => { + expect(Sandbox.any()).toBe("sandbox") + }) +}) diff --git a/packages/core/src/generated/gateability.json b/packages/core/src/generated/gateability.json index 5dd46afe9..cfcf35bc9 100644 --- a/packages/core/src/generated/gateability.json +++ b/packages/core/src/generated/gateability.json @@ -31,6 +31,10 @@ "frozen": true, "live": true }, + "sandbox": { + "frozen": true, + "live": false + }, "storage": { "frozen": true, "live": true diff --git a/packages/core/src/generated/index.ts b/packages/core/src/generated/index.ts index c2b587083..f7fad2457 100644 --- a/packages/core/src/generated/index.ts +++ b/packages/core/src/generated/index.ts @@ -31,6 +31,7 @@ export type { AwsIamRoleServiceAccountHeartbeatData } from "./zod/aws-iam-role-s export type { AwsKvImportData } from "./zod/aws-kv-import-data-schema.js"; export type { AwsLambdaWorkerHeartbeatData } from "./zod/aws-lambda-worker-heartbeat-data-schema.js"; export type { AwsManagementConfig } from "./zod/aws-management-config-schema.js"; +export type { AwsMicrovmSandboxHeartbeatData } from "./zod/aws-microvm-sandbox-heartbeat-data-schema.js"; export type { AwsNetworkImportData } from "./zod/aws-network-import-data-schema.js"; export type { AwsOpenSearchCapacityRange } from "./zod/aws-open-search-capacity-range-schema.js"; export type { AwsOpenSearchCapacity } from "./zod/aws-open-search-capacity-schema.js"; @@ -84,6 +85,7 @@ export type { AzureResourceGroupHeartbeatData } from "./zod/azure-resource-group export type { AzureResourceGroupHeartbeatStatus } from "./zod/azure-resource-group-heartbeat-status-schema.js"; export type { AzureResourceGroupImportData } from "./zod/azure-resource-group-import-data-schema.js"; export type { AzureResourceProviderActivationHeartbeatData } from "./zod/azure-resource-provider-activation-heartbeat-data-schema.js"; +export type { AzureSandboxGroupHeartbeatData } from "./zod/azure-sandbox-group-heartbeat-data-schema.js"; export type { AzureServiceAccountImportData } from "./zod/azure-service-account-import-data-schema.js"; export type { AzureServiceActivationImportData } from "./zod/azure-service-activation-import-data-schema.js"; export type { AzureServiceBusNamespaceHeartbeatData } from "./zod/azure-service-bus-namespace-heartbeat-data-schema.js"; @@ -235,6 +237,7 @@ export type { KubernetesOwnerReference } from "./zod/kubernetes-owner-reference- export type { KubernetesPodRuntimeUnitStatus } from "./zod/kubernetes-pod-runtime-unit-status-schema.js"; export type { KubernetesRouteProfile } from "./zod/kubernetes-route-profile-schema.js"; export type { KubernetesRouteProviderOptions } from "./zod/kubernetes-route-provider-options-schema.js"; +export type { KubernetesSandboxHeartbeatData } from "./zod/kubernetes-sandbox-heartbeat-data-schema.js"; export type { KubernetesSecretVaultHeartbeatData } from "./zod/kubernetes-secret-vault-heartbeat-data-schema.js"; export type { KubernetesSettings } from "./zod/kubernetes-settings-schema.js"; export type { KubernetesTlsSecretRef } from "./zod/kubernetes-tls-secret-ref-schema.js"; @@ -263,6 +266,7 @@ export type { LocalRuntimeEventSnapshot } from "./zod/local-runtime-event-snapsh export type { LocalRuntimeEventSubject } from "./zod/local-runtime-event-subject-schema.js"; export type { LocalRuntimeUnitKind } from "./zod/local-runtime-unit-kind-schema.js"; export type { LocalRuntimeUnitStatus } from "./zod/local-runtime-unit-status-schema.js"; +export type { LocalSandboxHeartbeatData } from "./zod/local-sandbox-heartbeat-data-schema.js"; export type { LocalServiceAccountHeartbeatData } from "./zod/local-service-account-heartbeat-data-schema.js"; export type { LocalStorageHeartbeatData } from "./zod/local-storage-heartbeat-data-schema.js"; export type { LocalVaultHeartbeatData } from "./zod/local-vault-heartbeat-data-schema.js"; @@ -336,6 +340,16 @@ export type { ResourceSpec } from "./zod/resource-spec-schema.js"; export type { ResourceStatus } from "./zod/resource-status-schema.js"; export type { ResourceType } from "./zod/resource-type-schema.js"; export type { ResponseHandling } from "./zod/response-handling-schema.js"; +export type { SandboxCapabilities } from "./zod/sandbox-capabilities-schema.js"; +export type { SandboxCapability } from "./zod/sandbox-capability-schema.js"; +export type { SandboxCode } from "./zod/sandbox-code-schema.js"; +export type { SandboxEgress } from "./zod/sandbox-egress-schema.js"; +export type { SandboxHeartbeatData } from "./zod/sandbox-heartbeat-data-schema.js"; +export type { SandboxHeartbeatStatus } from "./zod/sandbox-heartbeat-status-schema.js"; +export type { SandboxLimits } from "./zod/sandbox-limits-schema.js"; +export type { SandboxOutputs } from "./zod/sandbox-outputs-schema.js"; +export type { Sandbox } from "./zod/sandbox-schema.js"; +export type { SandboxSessionPolicy } from "./zod/sandbox-session-policy-schema.js"; export type { ScheduledEvent } from "./zod/scheduled-event-schema.js"; export type { ServiceAccountHeartbeatData } from "./zod/service-account-heartbeat-data-schema.js"; export type { ServiceAccountHeartbeatStatus } from "./zod/service-account-heartbeat-status-schema.js"; @@ -419,6 +433,7 @@ export { AwsIamRoleServiceAccountHeartbeatDataSchema } from "./zod/aws-iam-role- export { AwsKvImportDataSchema } from "./zod/aws-kv-import-data-schema.js"; export { AwsLambdaWorkerHeartbeatDataSchema } from "./zod/aws-lambda-worker-heartbeat-data-schema.js"; export { AwsManagementConfigSchema } from "./zod/aws-management-config-schema.js"; +export { AwsMicrovmSandboxHeartbeatDataSchema } from "./zod/aws-microvm-sandbox-heartbeat-data-schema.js"; export { AwsNetworkImportDataSchema } from "./zod/aws-network-import-data-schema.js"; export { AwsOpenSearchCapacityRangeSchema } from "./zod/aws-open-search-capacity-range-schema.js"; export { AwsOpenSearchCapacitySchema } from "./zod/aws-open-search-capacity-schema.js"; @@ -472,6 +487,7 @@ export { AzureResourceGroupHeartbeatDataSchema } from "./zod/azure-resource-grou export { AzureResourceGroupHeartbeatStatusSchema } from "./zod/azure-resource-group-heartbeat-status-schema.js"; export { AzureResourceGroupImportDataSchema } from "./zod/azure-resource-group-import-data-schema.js"; export { AzureResourceProviderActivationHeartbeatDataSchema } from "./zod/azure-resource-provider-activation-heartbeat-data-schema.js"; +export { AzureSandboxGroupHeartbeatDataSchema } from "./zod/azure-sandbox-group-heartbeat-data-schema.js"; export { AzureServiceAccountImportDataSchema } from "./zod/azure-service-account-import-data-schema.js"; export { AzureServiceActivationImportDataSchema } from "./zod/azure-service-activation-import-data-schema.js"; export { AzureServiceBusNamespaceHeartbeatDataSchema } from "./zod/azure-service-bus-namespace-heartbeat-data-schema.js"; @@ -623,6 +639,7 @@ export { KubernetesOwnerReferenceSchema } from "./zod/kubernetes-owner-reference export { KubernetesPodRuntimeUnitStatusSchema } from "./zod/kubernetes-pod-runtime-unit-status-schema.js"; export { KubernetesRouteProfileSchema } from "./zod/kubernetes-route-profile-schema.js"; export { KubernetesRouteProviderOptionsSchema } from "./zod/kubernetes-route-provider-options-schema.js"; +export { KubernetesSandboxHeartbeatDataSchema } from "./zod/kubernetes-sandbox-heartbeat-data-schema.js"; export { KubernetesSecretVaultHeartbeatDataSchema } from "./zod/kubernetes-secret-vault-heartbeat-data-schema.js"; export { KubernetesSettingsSchema } from "./zod/kubernetes-settings-schema.js"; export { KubernetesTlsSecretRefSchema } from "./zod/kubernetes-tls-secret-ref-schema.js"; @@ -651,6 +668,7 @@ export { LocalRuntimeEventSnapshotSchema } from "./zod/local-runtime-event-snaps export { LocalRuntimeEventSubjectSchema } from "./zod/local-runtime-event-subject-schema.js"; export { LocalRuntimeUnitKindSchema } from "./zod/local-runtime-unit-kind-schema.js"; export { LocalRuntimeUnitStatusSchema } from "./zod/local-runtime-unit-status-schema.js"; +export { LocalSandboxHeartbeatDataSchema } from "./zod/local-sandbox-heartbeat-data-schema.js"; export { LocalServiceAccountHeartbeatDataSchema } from "./zod/local-service-account-heartbeat-data-schema.js"; export { LocalStorageHeartbeatDataSchema } from "./zod/local-storage-heartbeat-data-schema.js"; export { LocalVaultHeartbeatDataSchema } from "./zod/local-vault-heartbeat-data-schema.js"; @@ -724,6 +742,16 @@ export { ResourceSpecSchema } from "./zod/resource-spec-schema.js"; export { ResourceStatusSchema } from "./zod/resource-status-schema.js"; export { ResourceTypeSchema } from "./zod/resource-type-schema.js"; export { ResponseHandlingSchema } from "./zod/response-handling-schema.js"; +export { SandboxCapabilitiesSchema } from "./zod/sandbox-capabilities-schema.js"; +export { SandboxCapabilitySchema } from "./zod/sandbox-capability-schema.js"; +export { SandboxCodeSchema } from "./zod/sandbox-code-schema.js"; +export { SandboxEgressSchema } from "./zod/sandbox-egress-schema.js"; +export { SandboxHeartbeatDataSchema } from "./zod/sandbox-heartbeat-data-schema.js"; +export { SandboxHeartbeatStatusSchema } from "./zod/sandbox-heartbeat-status-schema.js"; +export { SandboxLimitsSchema } from "./zod/sandbox-limits-schema.js"; +export { SandboxOutputsSchema } from "./zod/sandbox-outputs-schema.js"; +export { SandboxSchema } from "./zod/sandbox-schema.js"; +export { SandboxSessionPolicySchema } from "./zod/sandbox-session-policy-schema.js"; export { ScheduledEventSchema } from "./zod/scheduled-event-schema.js"; export { ServiceAccountHeartbeatDataSchema } from "./zod/service-account-heartbeat-data-schema.js"; export { ServiceAccountHeartbeatStatusSchema } from "./zod/service-account-heartbeat-status-schema.js"; diff --git a/packages/core/src/generated/schemas/awsMicrovmSandboxHeartbeatData.json b/packages/core/src/generated/schemas/awsMicrovmSandboxHeartbeatData.json new file mode 100644 index 000000000..b3f173bcb --- /dev/null +++ b/packages/core/src/generated/schemas/awsMicrovmSandboxHeartbeatData.json @@ -0,0 +1 @@ +{"type":"object","description":"AWS: MicroVMs started from one image, counted across every version.","required":["status","imageIdentifier","activeSessions","versionsWithSessions"],"properties":{"activeSessions":{"type":"integer","format":"int32","description":"Sessions running now. Counted across all image versions, because a rolled version stays a\nscope until its own MicroVMs are gone.","minimum":0},"imageIdentifier":{"type":"string","description":"Image the sessions belong to."},"imageState":{"type":["string","null"],"description":"The image's own lifecycle state, which is where AWS surfaces base-image deprecation."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"},"versionsWithSessions":{"type":"integer","format":"int32","description":"Image versions still carrying sessions.","minimum":0}},"x-readme-ref-name":"AwsMicrovmSandboxHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/azureSandboxGroupHeartbeatData.json b/packages/core/src/generated/schemas/azureSandboxGroupHeartbeatData.json new file mode 100644 index 000000000..df4715cc4 --- /dev/null +++ b/packages/core/src/generated/schemas/azureSandboxGroupHeartbeatData.json @@ -0,0 +1 @@ +{"type":"object","description":"Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here.","required":["status","sandboxGroup"],"properties":{"provisioningState":{"type":["string","null"]},"sandboxGroup":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"AzureSandboxGroupHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/kubernetesSandboxHeartbeatData.json b/packages/core/src/generated/schemas/kubernetesSandboxHeartbeatData.json new file mode 100644 index 000000000..05a7b2a5d --- /dev/null +++ b/packages/core/src/generated/schemas/kubernetesSandboxHeartbeatData.json @@ -0,0 +1 @@ +{"type":"object","description":"Kubernetes: pods carrying the sandbox label, in the deployment's namespace.","required":["status","namespace","activeSessions","idlePods"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"idlePods":{"type":"integer","format":"int32","description":"Claimed but unused pods waiting in the pool.","minimum":0},"namespace":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSandboxHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/localSandboxHeartbeatData.json b/packages/core/src/generated/schemas/localSandboxHeartbeatData.json new file mode 100644 index 000000000..7536e4733 --- /dev/null +++ b/packages/core/src/generated/schemas/localSandboxHeartbeatData.json @@ -0,0 +1 @@ +{"type":"object","description":"Local: containers Docker still holds for this sandbox.","required":["status","activeSessions","routeServing"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"routeServing":{"type":"boolean","description":"Whether the loopback route is serving in this process. False after a manager restart until\nthe next tick rebinds it."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"LocalSandboxHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/resourceHeartbeat.json b/packages/core/src/generated/schemas/resourceHeartbeat.json index f04b1a554..38265c5e8 100644 --- a/packages/core/src/generated/schemas/resourceHeartbeat.json +++ b/packages/core/src/generated/schemas/resourceHeartbeat.json @@ -1 +1 @@ -{"type":"object","required":["resourceId","resourceType","controllerPlatform","backend","observedAt","data","raw"],"properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"x-readme-ref-name":"HeartbeatBackend"},"controllerPlatform":{"type":"string","description":"Represents the target cloud platform.","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"x-readme-ref-name":"Platform"},"data":{"oneOf":[{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent","publicAccessBlockPresent"],"properties":{"blockPublicAcls":{"type":["boolean","null"]},"blockPublicPolicy":{"type":["boolean","null"]},"bucketAclPresent":{"type":["boolean","null"]},"bucketLocation":{"type":["string","null"]},"bucketPolicyPresent":{"type":["boolean","null"]},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":["boolean","null"]},"ignorePublicAcls":{"type":["boolean","null"]},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":["string","null"]},"restrictPublicBuckets":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"versioningEnabled":{"type":["boolean","null"]},"versioningStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsS3StorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsS3"]}}}]},{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent"],"properties":{"bucketId":{"type":["string","null"]},"defaultKmsKeyName":{"type":["string","null"]},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"location":{"type":["string","null"]},"locationType":{"type":["string","null"]},"name":{"type":"string"},"publicAccessPrevention":{"type":["string","null"]},"retentionPeriod":{"type":["string","null"]},"retentionPolicyEffectiveTime":{"type":["string","null"]},"retentionPolicyIsLocked":{"type":["boolean","null"]},"softDeleteEffectiveTime":{"type":["string","null"]},"softDeleteRetentionDurationSeconds":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"storageClass":{"type":["string","null"]},"uniformBucketLevelAccessEnabled":{"type":["boolean","null"]},"uniformBucketLevelAccessLockedTime":{"type":["string","null"]},"versioningEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"GcpCloudStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"accessTier":{"type":["string","null"]},"accountKind":{"type":["string","null"]},"allowBlobPublicAccess":{"type":["boolean","null"]},"blobDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"blobDeleteRetentionEnabled":{"type":["boolean","null"]},"blobEncryptionEnabled":{"type":["boolean","null"]},"blobVersioningEnabled":{"type":["boolean","null"]},"changeFeedEnabled":{"type":["boolean","null"]},"changeFeedRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionEnabled":{"type":["boolean","null"]},"containerPublicAccess":{"type":["string","null"]},"encryptionKeySource":{"type":["string","null"]},"fileEncryptionEnabled":{"type":["boolean","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"primaryLocation":{"type":["string","null"]},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"queueEncryptionEnabled":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"secondaryLocation":{"type":["string","null"]},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"statusOfPrimary":{"type":["string","null"]},"statusOfSecondary":{"type":["string","null"]},"storageAccountName":{"type":["string","null"]},"tableEncryptionEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureBlobStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureBlob"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"}},"x-readme-ref-name":"LocalStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"StorageHeartbeatData"},"resourceType":{"type":"string","enum":["storage"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","functionName","layerCount","functionUrlCorsPresent","triggerCount"],"properties":{"codeSha256":{"type":["string","null"]},"functionName":{"type":"string"},"functionUrlAuthType":{"type":["string","null"]},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":["string","null"]},"lastUpdateStatus":{"type":["string","null"]},"lastUpdateStatusReason":{"type":["string","null"]},"lastUpdateStatusReasonCode":{"type":["string","null"]},"layerCount":{"type":"integer","format":"int32","minimum":0},"memorySizeMb":{"type":["integer","null"],"format":"int64"},"packageType":{"type":["string","null"]},"revisionId":{"type":["string","null"]},"runtime":{"type":["string","null"]},"state":{"type":["string","null"]},"stateReason":{"type":["string","null"]},"stateReasonCode":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"timeoutSeconds":{"type":["integer","null"],"format":"int64"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"version":{"type":["string","null"]}},"x-readme-ref-name":"AwsLambdaWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsLambda"]}}}]},{"allOf":[{"type":"object","required":["status","service","urls","trafficCount"],"properties":{"containerImage":{"type":["string","null"]},"cpuLimit":{"type":["string","null"]},"generation":{"type":["integer","null"],"format":"int64"},"latestCreatedRevision":{"type":["string","null"]},"latestReadyRevision":{"type":["string","null"]},"maxInstanceCount":{"type":["integer","null"],"format":"int32"},"memoryLimit":{"type":["string","null"]},"minInstanceCount":{"type":["integer","null"],"format":"int32"},"observedGeneration":{"type":["integer","null"],"format":"int64"},"region":{"type":["string","null"]},"service":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"trafficCount":{"type":"integer","format":"int32","minimum":0},"uri":{"type":["string","null"]},"urls":{"type":"array","items":{"type":"string"}}},"x-readme-ref-name":"GcpCloudRunWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}}}]},{"allOf":[{"type":"object","required":["status","appName"],"properties":{"appName":{"type":"string"},"cpu":{"type":["number","null"],"format":"double"},"environmentName":{"type":["string","null"]},"ingressFqdn":{"type":["string","null"]},"maxReplicas":{"type":["integer","null"],"format":"int32"},"memory":{"type":["string","null"]},"minReplicas":{"type":["integer","null"],"format":"int32"},"provisioningState":{"type":["string","null"]},"revision":{"type":["string","null"]},"runningStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","triggerCount","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","commandSupported","imagePathPresent","triggerCount","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"process":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"readinessProbeOk":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"LocalWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"WorkerHeartbeatData"},"resourceType":{"type":"string","enum":["worker"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","containerId","schedulingMode","replicas","attentionCount","replicaUnits","events"],"properties":{"attentionCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"latestUpdateTimestamp":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"observedImage":{"type":["string","null"]},"replicaUnits":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"],"x-readme-ref-name":"HorizonWorkloadSchedulingMode"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"HorizonContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["horizonPlatform"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","portCount","bindMountCount","runtimeReachable","events"],"properties":{"bindMountCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":["string","null"]},"containerUnit":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"localUrl":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":["string","null"]},"portCount":{"type":"integer","format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ContainerHeartbeatData"},"resourceType":{"type":"string","enum":["container"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"GcpDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AzureDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"MachinesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","replicas","commandSupported","pods","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]}},"x-readme-ref-name":"KubernetesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","runtimeId","commandSupported","imagePathPresent","events"],"properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"exitReason":{"type":["string","null"]},"imagePathPresent":{"type":"boolean"},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"DaemonHeartbeatData"},"resourceType":{"type":"string","enum":["daemon"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AwsComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"GcpComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AzureComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","machines"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"machines":{"type":"array","items":{"type":"object","required":["machineId","status","capacityGroup","zone","lastHeartbeat","replicaCount","drainForce"],"properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":["number","null"],"format":"double"},"drainBlockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"horizondVersion":{"type":["string","null"]},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":["integer","null"],"format":"int64"},"overlayIp":{"type":["string","null"]},"publicIp":{"type":["string","null"]},"replicaCount":{"type":"integer","format":"int64"},"status":{"type":"string"},"zone":{"type":"string"}},"x-readme-ref-name":"MachinesComputeMachineStatus"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"MachinesComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","dockerAvailable","networkAvailable"],"properties":{"dockerApiVersion":{"type":["string","null"]},"dockerArch":{"type":["string","null"]},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":["string","null"]},"dockerVersion":{"type":["string","null"]},"hostIdentifier":{"type":["string","null"]},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":["string","null"]},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"runningContainers":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"},"trackedContainers":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"LocalComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ComputeClusterHeartbeatData"},"resourceType":{"type":"string","enum":["compute-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","nodeCounts","podCounts","name","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":["string","null"]},"nodeCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"nodeStatuses":{"type":"array","items":{"type":"object","required":["name","ready","roles","labels","allocatable","capacity"],"properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesNodeConditionStatus"}},"containerRuntimeVersion":{"type":["string","null"]},"kubeletVersion":{"type":["string","null"]},"labels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":["string","null"]},"usage":{"oneOf":[{"type":"null"},{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"KubernetesNodeUsage"}]}},"x-readme-ref-name":"KubernetesClusterNodeStatus"}},"podCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesClusterHeartbeatData"},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","approximateCounts"],"properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateInFlightMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateVisibleMessages":{"type":["integer","null"],"format":"int64","minimum":0},"contentBasedDeduplication":{"type":["boolean","null"]},"deduplicationScope":{"type":["string","null"]},"delaySeconds":{"type":["integer","null"],"format":"int32","minimum":0},"fifoQueue":{"type":["boolean","null"]},"fifoThroughputLimit":{"type":["string","null"]},"kmsDataKeyReusePeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"kmsMasterKeyId":{"type":["string","null"]},"maximumMessageSize":{"type":["integer","null"],"format":"int32","minimum":0},"messageRetentionPeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"queueArn":{"type":["string","null"]},"queueUrl":{"type":["string","null"]},"receiveMessageWaitTimeSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"redriveAllowPolicy":{"type":["string","null"]},"redrivePolicy":{"type":["string","null"]},"region":{"type":["string","null"]},"sqsManagedSseEnabled":{"type":["boolean","null"]},"sseEnabled":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"visibilityTimeoutSeconds":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"AwsSqsQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsSqs"]}}}]},{"allOf":[{"type":"object","required":["status","topicName","topicLabels","subscriptionLabels","messageStorageAllowedPersistenceRegions","subscriptionPushAttributes"],"properties":{"endpoint":{"type":["string","null"]},"kmsKeyName":{"type":["string","null"]},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":["boolean","null"]},"projectId":{"type":["string","null"]},"schemaEncoding":{"type":["string","null"]},"schemaFirstRevisionId":{"type":["string","null"]},"schemaLastRevisionId":{"type":["string","null"]},"schemaName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"subscriptionAckDeadlineSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterTopic":{"type":["string","null"]},"subscriptionDetached":{"type":["boolean","null"]},"subscriptionEnableMessageOrdering":{"type":["boolean","null"]},"subscriptionFilter":{"type":["string","null"]},"subscriptionFullName":{"type":["string","null"]},"subscriptionLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":["string","null"]},"subscriptionName":{"type":["string","null"]},"subscriptionPushAttributes":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionPushConfigPresent":{"type":["boolean","null"]},"subscriptionPushEndpoint":{"type":["string","null"]},"subscriptionPushNoWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionPushOidcAudience":{"type":["string","null"]},"subscriptionPushOidcServiceAccountEmail":{"type":["string","null"]},"subscriptionPushPubsubWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionRetainAckedMessages":{"type":["boolean","null"]},"subscriptionState":{"type":["string","null"]},"topicFullName":{"type":["string","null"]},"topicLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"topicMessageRetentionDuration":{"type":["string","null"]},"topicName":{"type":"string"},"topicState":{"type":["string","null"]}},"x-readme-ref-name":"GcpPubSubQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpPubSub"]}}}]},{"allOf":[{"type":"object","required":["status","name","namespaceName"],"properties":{"accessedAt":{"type":["string","null"]},"activeMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"autoDeleteOnIdle":{"type":["string","null"]},"createdAt":{"type":["string","null"]},"deadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"deadLetteringOnMessageExpiration":{"type":["boolean","null"]},"defaultMessageTimeToLive":{"type":["string","null"]},"duplicateDetectionHistoryTimeWindow":{"type":["string","null"]},"enableBatchedOperations":{"type":["boolean","null"]},"enableExpress":{"type":["boolean","null"]},"enablePartitioning":{"type":["boolean","null"]},"endpoint":{"type":["string","null"]},"forwardDeadLetteredMessagesTo":{"type":["string","null"]},"forwardTo":{"type":["string","null"]},"lockDuration":{"type":["string","null"]},"maxDeliveryCount":{"type":["integer","null"],"format":"int32","minimum":0},"maxMessageSizeInKilobytes":{"type":["integer","null"],"format":"int64","minimum":0},"maxSizeInMegabytes":{"type":["integer","null"],"format":"int32","minimum":0},"messageCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":["string","null"]},"requiresDuplicateDetection":{"type":["boolean","null"]},"requiresSession":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"scheduledMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"sizeInBytes":{"type":["integer","null"],"format":"int64","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"transferDeadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"transferMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"updatedAt":{"type":["string","null"]}},"x-readme-ref-name":"AzureServiceBusQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureServiceBus"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"name":{"type":"string"},"path":{"type":["string","null"]},"serviceStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"}},"x-readme-ref-name":"LocalQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"QueueHeartbeatData"},"resourceType":{"type":"string","enum":["queue"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","keySchema"],"properties":{"billingMode":{"type":["string","null"]},"deletionProtectionEnabled":{"type":["boolean","null"]},"globalSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"itemCount":{"type":["integer","null"],"format":"int64","minimum":0},"keySchema":{"type":"array","items":{"type":"object","required":["attributeName","keyType"],"properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"x-readme-ref-name":"AwsDynamoDbKeySchemaElement"}},"localSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"region":{"type":["string","null"]},"replicaCount":{"type":["integer","null"],"format":"int32","minimum":0},"restoreInProgress":{"type":["boolean","null"]},"sseStatus":{"type":["string","null"]},"sseType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"streamEnabled":{"type":["boolean","null"]},"streamViewType":{"type":["string","null"]},"tableArn":{"type":["string","null"]},"tableClass":{"type":["string","null"]},"tableSizeBytes":{"type":["integer","null"],"format":"int64","minimum":0},"tableStatus":{"type":["string","null"]},"ttlAttributeName":{"type":["string","null"]},"ttlStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsDynamoDbKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}}}]},{"allOf":[{"type":"object","required":["status","databaseName","cmekEnabled","sourceInfoPresent"],"properties":{"appEngineIntegrationMode":{"type":["string","null"]},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":["string","null"]},"createTime":{"type":["string","null"]},"databaseEdition":{"type":["string","null"]},"databaseName":{"type":"string"},"databaseType":{"type":["string","null"]},"deleteProtectionState":{"type":["string","null"]},"deleteTime":{"type":["string","null"]},"earliestVersionTime":{"type":["string","null"]},"endpoint":{"type":["string","null"]},"locationId":{"type":["string","null"]},"pointInTimeRecoveryEnablement":{"type":["string","null"]},"projectId":{"type":["string","null"]},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"updateTime":{"type":["string","null"]},"versionRetentionPeriod":{"type":["string","null"]}},"x-readme-ref-name":"GcpFirestoreKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpFirestore"]}}}]},{"allOf":[{"type":"object","required":["status","tableName","storageAccountName","tableExists"],"properties":{"endpoint":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"signedIdentifierCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"storageAccountKind":{"type":["string","null"]},"storageAccountLocation":{"type":["string","null"]},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":["string","null"]},"storageAccountProvisioningState":{"type":["string","null"]},"storageAccountResourceId":{"type":["string","null"]},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"x-readme-ref-name":"AzureTableKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureTable"]}}}]},{"allOf":[{"type":"object","required":["status","name","path","pathExists","cloudMetadataSupported"],"properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":["boolean","null"]},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"}},"x-readme-ref-name":"LocalKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"KvHeartbeatData"},"resourceType":{"type":"string","enum":["kv"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"description":"AWS Aurora Serverless v2 backend.","type":"object","required":["status","clusterIdentifier","neverPauses"],"properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":["string","null"]},"engineVersion":{"type":["string","null"]},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":["number","null"],"format":"double","description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"AuroraPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aurora"]}}}],"description":"AWS Aurora Serverless v2 backend."},{"allOf":[{"description":"GCP Cloud SQL backend.","type":"object","required":["status","instanceName"],"properties":{"databaseVersion":{"type":["string","null"]},"instanceName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudSqlPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["cloudSql"]}}}],"description":"GCP Cloud SQL backend."},{"allOf":[{"description":"Azure Flexible Server backend.","type":"object","required":["status","serverName"],"properties":{"serverName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"AzureFlexibleServerPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["flexibleServer"]}}}],"description":"Azure Flexible Server backend."},{"allOf":[{"description":"Local embedded Postgres backend.","type":"object","required":["status","name","version","processRunning"],"properties":{"name":{"type":"string"},"port":{"type":["integer","null"],"format":"int32","minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":"string"}},"x-readme-ref-name":"LocalPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}],"description":"Local embedded Postgres backend."}],"x-readme-ref-name":"PostgresHeartbeatData"},"resourceType":{"type":"string","enum":["postgres"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","accountId","region","prefix","parameterMetadataSampled"],"properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":["boolean","null"]},"latestModifiedAt":{"type":["string","null"],"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledParameterCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledSecureStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringListCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"AwsParameterStoreVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsParameterStore"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","prefix","secretMetadataListed"],"properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"GcpSecretManagerVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}}}]},{"allOf":[{"type":"object","required":["status","name","softDeleteEnabled","softDeleteRetentionDays","rbacAuthorizationEnabled","publicNetworkAccess","accessPolicyCount","privateEndpointConnectionCount","secretMetadataListed"],"properties":{"accessPolicyCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":["string","null"]},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":["boolean","null"]},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":["string","null"]},"skuName":{"type":["string","null"]},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer","format":"int32"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"},"vaultUri":{"type":["string","null"]}},"x-readme-ref-name":"AzureKeyVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureKeyVault"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","prefix","secretMetadataListed"],"properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSecretVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists","secretMetadataListed"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"LocalVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"VaultHeartbeatData"},"resourceType":{"type":"string","enum":["vault"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","roleName","roleArn","roleId","path","createDate","assumeRolePolicyPresent","tagCount","managedTagCount","attachedPolicyCount","attachedPolicyNames","inlinePolicyCount","inlinePolicyNames","stackPermissionsApplied"],"properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","format":"int32","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":["string","null"]},"inlinePolicyCount":{"type":"integer","format":"int32","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":["string","null"]},"lastUsedRegion":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"maxSessionDuration":{"type":["integer","null"],"format":"int32"},"path":{"type":"string"},"permissionsBoundaryArn":{"type":["string","null"]},"permissionsBoundaryType":{"type":["string","null"]},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tagCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsIamRoleServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles"],"properties":{"description":{"type":["string","null"]},"disabled":{"type":["boolean","null"]},"displayName":{"type":["string","null"]},"email":{"type":"string"},"etag":{"type":["string","null"]},"name":{"type":["string","null"]},"oauth2ClientId":{"type":["string","null"]},"projectBindingCount":{"type":"integer","format":"int32","minimum":0},"projectId":{"type":["string","null"]},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","format":"int32","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"uniqueId":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceId","resourceGroup","location","managedTagCount","roleAssignmentCount","roleAssignmentIds","customRoleDefinitionCount","customRoleDefinitionIds","stackPermissionsApplied"],"properties":{"clientId":{"type":["string","null"]},"customRoleDefinitionCount":{"type":"integer","format":"int32","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":["string","null"]},"location":{"type":"string"},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"principalId":{"type":["string","null"]},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","format":"int32","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tenantId":{"type":["string","null"]},"type":{"type":["string","null"]}},"x-readme-ref-name":"AzureManagedIdentityServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]},{"allOf":[{"type":"object","required":["status","identity","configured"],"properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"}},"x-readme-ref-name":"LocalServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ServiceAccountHeartbeatData"},"resourceType":{"type":"string","enum":["service-account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"applicationGatewaySubnetName":{"type":["string","null"]},"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateEndpointSubnetName":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"},"resourceType":{"type":"string","enum":["network"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","managementPermissionsApplied"],"properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":["string","null"]},"roleName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"AwsRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","roleBound","impersonationGranted"],"properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":["string","null"]},"serviceAccountUniqueId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"GcpRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","roleAssignmentIds"],"properties":{"ficName":{"type":["string","null"]},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"},"tenantId":{"type":["string","null"]},"uamiClientId":{"type":["string","null"]},"uamiPrincipalId":{"type":["string","null"]},"uamiResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]}],"x-readme-ref-name":"RemoteStackManagementHeartbeatData"},"resourceType":{"type":"string","enum":["remote-stack-management"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","registryId","region","registryUri","repositoryPrefix","repositoryCount","repositoriesTruncated","repositories"],"properties":{"pullRoleArn":{"type":["string","null"]},"pushRoleArn":{"type":["string","null"]},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["repositoryArn","registryId","repositoryName","repositoryUri","createdAt","kmsKeyPresent"],"properties":{"createdAt":{"type":"number","format":"double"},"encryptionType":{"type":["string","null"]},"imageTagMutability":{"type":["string","null"]},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":["boolean","null"]}},"x-readme-ref-name":"AwsEcrRepositoryHeartbeatData"}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","format":"int32","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"AwsEcrArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsEcr"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","repositoryId","labelCount","cleanupPolicyCount","kmsKeyNamePresent","iamPolicyEtagPresent","iamBindingCount","iamRoles"],"properties":{"cleanupPolicyCount":{"type":"integer","format":"int32","minimum":0},"cleanupPolicyDryRun":{"type":["boolean","null"]},"createTime":{"type":["string","null"]},"description":{"type":["string","null"]},"format":{"type":["string","null"]},"iamBindingCount":{"type":"integer","format":"int32","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"mode":{"type":["string","null"]},"name":{"type":["string","null"]},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":["string","null"]},"pushServiceAccountEmail":{"type":["string","null"]},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":["boolean","null"]},"sizeBytes":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"updateTime":{"type":["string","null"]}},"x-readme-ref-name":"GcpArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceGroup","location","skuName","adminUserEnabled","anonymousPullEnabled","publicNetworkAccess","networkRuleBypassOptions","ipRuleCount","encryptionKeyVaultUriPresent","encryptionKeyIdentifierPresent","policiesPresent","policyCount","privateEndpointConnectionCount","dataEndpointHostNames","zoneRedundancy","managedTagCount"],"properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":["string","null"]},"dataEndpointEnabled":{"type":["boolean","null"]},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":["string","null"]},"ipRuleCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"loginServer":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":["string","null"]},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","format":"int32","minimum":0},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":["string","null"]},"skuName":{"type":"string"},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"type":{"type":["string","null"]},"zoneRedundancy":{"type":"string"}},"x-readme-ref-name":"AzureContainerRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","registryUrl","reachable"],"properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"LocalArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ArtifactRegistryHeartbeatData"},"resourceType":{"type":"string","enum":["artifact-registry"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectName","environmentVariableCount","serviceRolePresent","encryptionKeyPresent"],"properties":{"artifactsEncryptionDisabled":{"type":["boolean","null"]},"artifactsType":{"type":["string","null"]},"cloudWatchLogsStatus":{"type":["string","null"]},"computeType":{"type":["string","null"]},"created":{"type":["number","null"],"format":"double"},"description":{"type":["string","null"]},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":["string","null"]},"environmentType":{"type":["string","null"]},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"imagePullCredentialsType":{"type":["string","null"]},"lastModified":{"type":["number","null"],"format":"double"},"privilegedMode":{"type":["boolean","null"]},"projectArn":{"type":["string","null"]},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":["integer","null"],"format":"int32"},"s3LogsStatus":{"type":["string","null"]},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"timeoutInMinutes":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"AwsCodeBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","buildConfigId","environmentVariableCount"],"properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}}}]},{"allOf":[{"type":"object","required":["status","managedEnvironmentId","resourceGroupName","environmentVariableCount"],"properties":{"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":["string","null"]},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","jobName","namespace","conditionCount","events"],"properties":{"active":{"type":["integer","null"],"format":"int32"},"completionTime":{"type":["string","null"],"format":"date-time"},"conditionCount":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"failed":{"type":["integer","null"],"format":"int32"},"imageDigest":{"type":["string","null"]},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":["string","null"],"format":"date-time"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"succeeded":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"KubernetesBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesJob"]}}}]}],"x-readme-ref-name":"BuildHeartbeatData"},"resourceType":{"type":"string","enum":["build"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectId","serviceName","enabled"],"properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":["string","null"]},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":["string","null"]},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"},"title":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceUsageActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","resourceTypeCount","registered"],"properties":{"namespace":{"type":"string"},"providerId":{"type":["string","null"]},"registered":{"type":"boolean"},"registrationPolicy":{"type":["string","null"]},"registrationState":{"type":["string","null"]},"resourceTypeCount":{"type":"integer","format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceProviderActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}}}]}],"x-readme-ref-name":"ServiceActivationHeartbeatData"},"resourceType":{"type":"string","enum":["service_activation"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","managedTags"],"properties":{"location":{"type":["string","null"]},"managedTags":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatData"},"resourceType":{"type":"string","enum":["azure_resource_group"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","primaryEndpoints","secondaryEndpoints"],"properties":{"allowBlobPublicAccess":{"type":["boolean","null"]},"allowSharedKeyAccess":{"type":["boolean","null"]},"encryptionKeySource":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"networkBypass":{"type":["string","null"]},"networkDefaultAction":{"type":["string","null"]},"networkIpRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkResourceAccessRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkVirtualNetworkRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"requireInfrastructureEncryption":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"supportsHttpsTrafficOnly":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureStorageAccountHeartbeatData"},"resourceType":{"type":"string","enum":["azure_storage_account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","workloadProfileCount","workloadProfiles"],"properties":{"customDomainVerificationId":{"type":["string","null"]},"defaultDomain":{"type":["string","null"]},"eventStreamEndpoint":{"type":["string","null"]},"infrastructureResourceGroup":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"staticIp":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatStatus"},"workloadProfileCount":{"type":"integer","format":"int32","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","required":["name","workloadProfileType"],"properties":{"maximumCount":{"type":["integer","null"],"format":"int32"},"minimumCount":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentWorkloadProfile"}},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatData"},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","privateEndpointConnectionCount"],"properties":{"createdAt":{"type":["string","null"]},"disableLocalAuth":{"type":["boolean","null"]},"location":{"type":["string","null"]},"metricId":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"namespaceStatus":{"type":["string","null"]},"premiumMessagingPartitions":{"type":["integer","null"],"format":"int32"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"serviceBusEndpoint":{"type":["string","null"]},"skuCapacity":{"type":["integer","null"],"format":"int32"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"updatedAt":{"type":["string","null"]},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureServiceBusNamespaceHeartbeatData"},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","region"],"properties":{"region":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AwsBedrockAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsBedrock"]}}}]},{"allOf":[{"type":"object","required":["status","project","location"],"properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"GcpVertexAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVertex"]}}}]},{"allOf":[{"type":"object","required":["status","accountName"],"properties":{"accountName":{"type":"string"},"endpoint":{"type":["string","null"]},"location":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AzureFoundryAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureFoundry"]}}}]},{"allOf":[{"type":"object","required":["status","provider"],"properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"ExternalAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["external"]}}}]}],"x-readme-ref-name":"AiHeartbeatData"},"resourceType":{"type":"string","enum":["ai"]}}}],"x-readme-ref-name":"ResourceHeartbeatData"},"deploymentId":{"type":["string","null"]},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","required":["source","format","collectedAt","body","truncated"],"properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"],"x-readme-ref-name":"RawHeartbeatSnippetFormat"},"source":{"type":"string"},"truncated":{"type":"boolean"}},"x-readme-ref-name":"RawHeartbeatSnippet"}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceHeartbeat"} \ No newline at end of file +{"type":"object","required":["resourceId","resourceType","controllerPlatform","backend","observedAt","data","raw"],"properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"x-readme-ref-name":"HeartbeatBackend"},"controllerPlatform":{"type":"string","description":"Represents the target cloud platform.","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"x-readme-ref-name":"Platform"},"data":{"oneOf":[{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent","publicAccessBlockPresent"],"properties":{"blockPublicAcls":{"type":["boolean","null"]},"blockPublicPolicy":{"type":["boolean","null"]},"bucketAclPresent":{"type":["boolean","null"]},"bucketLocation":{"type":["string","null"]},"bucketPolicyPresent":{"type":["boolean","null"]},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":["boolean","null"]},"ignorePublicAcls":{"type":["boolean","null"]},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":["string","null"]},"restrictPublicBuckets":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"versioningEnabled":{"type":["boolean","null"]},"versioningStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsS3StorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsS3"]}}}]},{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent"],"properties":{"bucketId":{"type":["string","null"]},"defaultKmsKeyName":{"type":["string","null"]},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"location":{"type":["string","null"]},"locationType":{"type":["string","null"]},"name":{"type":"string"},"publicAccessPrevention":{"type":["string","null"]},"retentionPeriod":{"type":["string","null"]},"retentionPolicyEffectiveTime":{"type":["string","null"]},"retentionPolicyIsLocked":{"type":["boolean","null"]},"softDeleteEffectiveTime":{"type":["string","null"]},"softDeleteRetentionDurationSeconds":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"storageClass":{"type":["string","null"]},"uniformBucketLevelAccessEnabled":{"type":["boolean","null"]},"uniformBucketLevelAccessLockedTime":{"type":["string","null"]},"versioningEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"GcpCloudStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"accessTier":{"type":["string","null"]},"accountKind":{"type":["string","null"]},"allowBlobPublicAccess":{"type":["boolean","null"]},"blobDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"blobDeleteRetentionEnabled":{"type":["boolean","null"]},"blobEncryptionEnabled":{"type":["boolean","null"]},"blobVersioningEnabled":{"type":["boolean","null"]},"changeFeedEnabled":{"type":["boolean","null"]},"changeFeedRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionEnabled":{"type":["boolean","null"]},"containerPublicAccess":{"type":["string","null"]},"encryptionKeySource":{"type":["string","null"]},"fileEncryptionEnabled":{"type":["boolean","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"primaryLocation":{"type":["string","null"]},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"queueEncryptionEnabled":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"secondaryLocation":{"type":["string","null"]},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"statusOfPrimary":{"type":["string","null"]},"statusOfSecondary":{"type":["string","null"]},"storageAccountName":{"type":["string","null"]},"tableEncryptionEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureBlobStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureBlob"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"}},"x-readme-ref-name":"LocalStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"StorageHeartbeatData"},"resourceType":{"type":"string","enum":["storage"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","functionName","layerCount","functionUrlCorsPresent","triggerCount"],"properties":{"codeSha256":{"type":["string","null"]},"functionName":{"type":"string"},"functionUrlAuthType":{"type":["string","null"]},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":["string","null"]},"lastUpdateStatus":{"type":["string","null"]},"lastUpdateStatusReason":{"type":["string","null"]},"lastUpdateStatusReasonCode":{"type":["string","null"]},"layerCount":{"type":"integer","format":"int32","minimum":0},"memorySizeMb":{"type":["integer","null"],"format":"int64"},"packageType":{"type":["string","null"]},"revisionId":{"type":["string","null"]},"runtime":{"type":["string","null"]},"state":{"type":["string","null"]},"stateReason":{"type":["string","null"]},"stateReasonCode":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"timeoutSeconds":{"type":["integer","null"],"format":"int64"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"version":{"type":["string","null"]}},"x-readme-ref-name":"AwsLambdaWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsLambda"]}}}]},{"allOf":[{"type":"object","required":["status","service","urls","trafficCount"],"properties":{"containerImage":{"type":["string","null"]},"cpuLimit":{"type":["string","null"]},"generation":{"type":["integer","null"],"format":"int64"},"latestCreatedRevision":{"type":["string","null"]},"latestReadyRevision":{"type":["string","null"]},"maxInstanceCount":{"type":["integer","null"],"format":"int32"},"memoryLimit":{"type":["string","null"]},"minInstanceCount":{"type":["integer","null"],"format":"int32"},"observedGeneration":{"type":["integer","null"],"format":"int64"},"region":{"type":["string","null"]},"service":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"trafficCount":{"type":"integer","format":"int32","minimum":0},"uri":{"type":["string","null"]},"urls":{"type":"array","items":{"type":"string"}}},"x-readme-ref-name":"GcpCloudRunWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}}}]},{"allOf":[{"type":"object","required":["status","appName"],"properties":{"appName":{"type":"string"},"cpu":{"type":["number","null"],"format":"double"},"environmentName":{"type":["string","null"]},"ingressFqdn":{"type":["string","null"]},"maxReplicas":{"type":["integer","null"],"format":"int32"},"memory":{"type":["string","null"]},"minReplicas":{"type":["integer","null"],"format":"int32"},"provisioningState":{"type":["string","null"]},"revision":{"type":["string","null"]},"runningStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","triggerCount","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","commandSupported","imagePathPresent","triggerCount","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"process":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"readinessProbeOk":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"LocalWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"WorkerHeartbeatData"},"resourceType":{"type":"string","enum":["worker"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","containerId","schedulingMode","replicas","attentionCount","replicaUnits","events"],"properties":{"attentionCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"latestUpdateTimestamp":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"observedImage":{"type":["string","null"]},"replicaUnits":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"],"x-readme-ref-name":"HorizonWorkloadSchedulingMode"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"HorizonContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["horizonPlatform"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","portCount","bindMountCount","runtimeReachable","events"],"properties":{"bindMountCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":["string","null"]},"containerUnit":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"localUrl":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":["string","null"]},"portCount":{"type":"integer","format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ContainerHeartbeatData"},"resourceType":{"type":"string","enum":["container"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"GcpDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AzureDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"MachinesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","replicas","commandSupported","pods","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]}},"x-readme-ref-name":"KubernetesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","runtimeId","commandSupported","imagePathPresent","events"],"properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"exitReason":{"type":["string","null"]},"imagePathPresent":{"type":"boolean"},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"DaemonHeartbeatData"},"resourceType":{"type":"string","enum":["daemon"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AwsComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"GcpComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AzureComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","machines"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"machines":{"type":"array","items":{"type":"object","required":["machineId","status","capacityGroup","zone","lastHeartbeat","replicaCount","drainForce"],"properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":["number","null"],"format":"double"},"drainBlockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"horizondVersion":{"type":["string","null"]},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":["integer","null"],"format":"int64"},"overlayIp":{"type":["string","null"]},"publicIp":{"type":["string","null"]},"replicaCount":{"type":"integer","format":"int64"},"status":{"type":"string"},"zone":{"type":"string"}},"x-readme-ref-name":"MachinesComputeMachineStatus"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"MachinesComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","dockerAvailable","networkAvailable"],"properties":{"dockerApiVersion":{"type":["string","null"]},"dockerArch":{"type":["string","null"]},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":["string","null"]},"dockerVersion":{"type":["string","null"]},"hostIdentifier":{"type":["string","null"]},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":["string","null"]},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"runningContainers":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"},"trackedContainers":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"LocalComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ComputeClusterHeartbeatData"},"resourceType":{"type":"string","enum":["compute-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","nodeCounts","podCounts","name","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":["string","null"]},"nodeCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"nodeStatuses":{"type":"array","items":{"type":"object","required":["name","ready","roles","labels","allocatable","capacity"],"properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesNodeConditionStatus"}},"containerRuntimeVersion":{"type":["string","null"]},"kubeletVersion":{"type":["string","null"]},"labels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":["string","null"]},"usage":{"oneOf":[{"type":"null"},{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"KubernetesNodeUsage"}]}},"x-readme-ref-name":"KubernetesClusterNodeStatus"}},"podCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesClusterHeartbeatData"},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","approximateCounts"],"properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateInFlightMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateVisibleMessages":{"type":["integer","null"],"format":"int64","minimum":0},"contentBasedDeduplication":{"type":["boolean","null"]},"deduplicationScope":{"type":["string","null"]},"delaySeconds":{"type":["integer","null"],"format":"int32","minimum":0},"fifoQueue":{"type":["boolean","null"]},"fifoThroughputLimit":{"type":["string","null"]},"kmsDataKeyReusePeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"kmsMasterKeyId":{"type":["string","null"]},"maximumMessageSize":{"type":["integer","null"],"format":"int32","minimum":0},"messageRetentionPeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"queueArn":{"type":["string","null"]},"queueUrl":{"type":["string","null"]},"receiveMessageWaitTimeSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"redriveAllowPolicy":{"type":["string","null"]},"redrivePolicy":{"type":["string","null"]},"region":{"type":["string","null"]},"sqsManagedSseEnabled":{"type":["boolean","null"]},"sseEnabled":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"visibilityTimeoutSeconds":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"AwsSqsQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsSqs"]}}}]},{"allOf":[{"type":"object","required":["status","topicName","topicLabels","subscriptionLabels","messageStorageAllowedPersistenceRegions","subscriptionPushAttributes"],"properties":{"endpoint":{"type":["string","null"]},"kmsKeyName":{"type":["string","null"]},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":["boolean","null"]},"projectId":{"type":["string","null"]},"schemaEncoding":{"type":["string","null"]},"schemaFirstRevisionId":{"type":["string","null"]},"schemaLastRevisionId":{"type":["string","null"]},"schemaName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"subscriptionAckDeadlineSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterTopic":{"type":["string","null"]},"subscriptionDetached":{"type":["boolean","null"]},"subscriptionEnableMessageOrdering":{"type":["boolean","null"]},"subscriptionFilter":{"type":["string","null"]},"subscriptionFullName":{"type":["string","null"]},"subscriptionLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":["string","null"]},"subscriptionName":{"type":["string","null"]},"subscriptionPushAttributes":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionPushConfigPresent":{"type":["boolean","null"]},"subscriptionPushEndpoint":{"type":["string","null"]},"subscriptionPushNoWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionPushOidcAudience":{"type":["string","null"]},"subscriptionPushOidcServiceAccountEmail":{"type":["string","null"]},"subscriptionPushPubsubWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionRetainAckedMessages":{"type":["boolean","null"]},"subscriptionState":{"type":["string","null"]},"topicFullName":{"type":["string","null"]},"topicLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"topicMessageRetentionDuration":{"type":["string","null"]},"topicName":{"type":"string"},"topicState":{"type":["string","null"]}},"x-readme-ref-name":"GcpPubSubQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpPubSub"]}}}]},{"allOf":[{"type":"object","required":["status","name","namespaceName"],"properties":{"accessedAt":{"type":["string","null"]},"activeMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"autoDeleteOnIdle":{"type":["string","null"]},"createdAt":{"type":["string","null"]},"deadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"deadLetteringOnMessageExpiration":{"type":["boolean","null"]},"defaultMessageTimeToLive":{"type":["string","null"]},"duplicateDetectionHistoryTimeWindow":{"type":["string","null"]},"enableBatchedOperations":{"type":["boolean","null"]},"enableExpress":{"type":["boolean","null"]},"enablePartitioning":{"type":["boolean","null"]},"endpoint":{"type":["string","null"]},"forwardDeadLetteredMessagesTo":{"type":["string","null"]},"forwardTo":{"type":["string","null"]},"lockDuration":{"type":["string","null"]},"maxDeliveryCount":{"type":["integer","null"],"format":"int32","minimum":0},"maxMessageSizeInKilobytes":{"type":["integer","null"],"format":"int64","minimum":0},"maxSizeInMegabytes":{"type":["integer","null"],"format":"int32","minimum":0},"messageCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":["string","null"]},"requiresDuplicateDetection":{"type":["boolean","null"]},"requiresSession":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"scheduledMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"sizeInBytes":{"type":["integer","null"],"format":"int64","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"transferDeadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"transferMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"updatedAt":{"type":["string","null"]}},"x-readme-ref-name":"AzureServiceBusQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureServiceBus"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"name":{"type":"string"},"path":{"type":["string","null"]},"serviceStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"}},"x-readme-ref-name":"LocalQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"QueueHeartbeatData"},"resourceType":{"type":"string","enum":["queue"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","keySchema"],"properties":{"billingMode":{"type":["string","null"]},"deletionProtectionEnabled":{"type":["boolean","null"]},"globalSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"itemCount":{"type":["integer","null"],"format":"int64","minimum":0},"keySchema":{"type":"array","items":{"type":"object","required":["attributeName","keyType"],"properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"x-readme-ref-name":"AwsDynamoDbKeySchemaElement"}},"localSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"region":{"type":["string","null"]},"replicaCount":{"type":["integer","null"],"format":"int32","minimum":0},"restoreInProgress":{"type":["boolean","null"]},"sseStatus":{"type":["string","null"]},"sseType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"streamEnabled":{"type":["boolean","null"]},"streamViewType":{"type":["string","null"]},"tableArn":{"type":["string","null"]},"tableClass":{"type":["string","null"]},"tableSizeBytes":{"type":["integer","null"],"format":"int64","minimum":0},"tableStatus":{"type":["string","null"]},"ttlAttributeName":{"type":["string","null"]},"ttlStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsDynamoDbKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}}}]},{"allOf":[{"type":"object","required":["status","databaseName","cmekEnabled","sourceInfoPresent"],"properties":{"appEngineIntegrationMode":{"type":["string","null"]},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":["string","null"]},"createTime":{"type":["string","null"]},"databaseEdition":{"type":["string","null"]},"databaseName":{"type":"string"},"databaseType":{"type":["string","null"]},"deleteProtectionState":{"type":["string","null"]},"deleteTime":{"type":["string","null"]},"earliestVersionTime":{"type":["string","null"]},"endpoint":{"type":["string","null"]},"locationId":{"type":["string","null"]},"pointInTimeRecoveryEnablement":{"type":["string","null"]},"projectId":{"type":["string","null"]},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"updateTime":{"type":["string","null"]},"versionRetentionPeriod":{"type":["string","null"]}},"x-readme-ref-name":"GcpFirestoreKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpFirestore"]}}}]},{"allOf":[{"type":"object","required":["status","tableName","storageAccountName","tableExists"],"properties":{"endpoint":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"signedIdentifierCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"storageAccountKind":{"type":["string","null"]},"storageAccountLocation":{"type":["string","null"]},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":["string","null"]},"storageAccountProvisioningState":{"type":["string","null"]},"storageAccountResourceId":{"type":["string","null"]},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"x-readme-ref-name":"AzureTableKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureTable"]}}}]},{"allOf":[{"type":"object","required":["status","name","path","pathExists","cloudMetadataSupported"],"properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":["boolean","null"]},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"}},"x-readme-ref-name":"LocalKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"KvHeartbeatData"},"resourceType":{"type":"string","enum":["kv"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"description":"AWS Aurora Serverless v2 backend.","type":"object","required":["status","clusterIdentifier","neverPauses"],"properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":["string","null"]},"engineVersion":{"type":["string","null"]},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":["number","null"],"format":"double","description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"AuroraPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aurora"]}}}],"description":"AWS Aurora Serverless v2 backend."},{"allOf":[{"description":"GCP Cloud SQL backend.","type":"object","required":["status","instanceName"],"properties":{"databaseVersion":{"type":["string","null"]},"instanceName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudSqlPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["cloudSql"]}}}],"description":"GCP Cloud SQL backend."},{"allOf":[{"description":"Azure Flexible Server backend.","type":"object","required":["status","serverName"],"properties":{"serverName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"AzureFlexibleServerPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["flexibleServer"]}}}],"description":"Azure Flexible Server backend."},{"allOf":[{"description":"Local embedded Postgres backend.","type":"object","required":["status","name","version","processRunning"],"properties":{"name":{"type":"string"},"port":{"type":["integer","null"],"format":"int32","minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":"string"}},"x-readme-ref-name":"LocalPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}],"description":"Local embedded Postgres backend."}],"x-readme-ref-name":"PostgresHeartbeatData"},"resourceType":{"type":"string","enum":["postgres"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","accountId","region","prefix","parameterMetadataSampled"],"properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":["boolean","null"]},"latestModifiedAt":{"type":["string","null"],"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledParameterCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledSecureStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringListCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"AwsParameterStoreVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsParameterStore"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","prefix","secretMetadataListed"],"properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"GcpSecretManagerVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}}}]},{"allOf":[{"type":"object","required":["status","name","softDeleteEnabled","softDeleteRetentionDays","rbacAuthorizationEnabled","publicNetworkAccess","accessPolicyCount","privateEndpointConnectionCount","secretMetadataListed"],"properties":{"accessPolicyCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":["string","null"]},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":["boolean","null"]},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":["string","null"]},"skuName":{"type":["string","null"]},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer","format":"int32"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"},"vaultUri":{"type":["string","null"]}},"x-readme-ref-name":"AzureKeyVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureKeyVault"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","prefix","secretMetadataListed"],"properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSecretVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists","secretMetadataListed"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"LocalVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"VaultHeartbeatData"},"resourceType":{"type":"string","enum":["vault"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","roleName","roleArn","roleId","path","createDate","assumeRolePolicyPresent","tagCount","managedTagCount","attachedPolicyCount","attachedPolicyNames","inlinePolicyCount","inlinePolicyNames","stackPermissionsApplied"],"properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","format":"int32","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":["string","null"]},"inlinePolicyCount":{"type":"integer","format":"int32","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":["string","null"]},"lastUsedRegion":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"maxSessionDuration":{"type":["integer","null"],"format":"int32"},"path":{"type":"string"},"permissionsBoundaryArn":{"type":["string","null"]},"permissionsBoundaryType":{"type":["string","null"]},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tagCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsIamRoleServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles"],"properties":{"description":{"type":["string","null"]},"disabled":{"type":["boolean","null"]},"displayName":{"type":["string","null"]},"email":{"type":"string"},"etag":{"type":["string","null"]},"name":{"type":["string","null"]},"oauth2ClientId":{"type":["string","null"]},"projectBindingCount":{"type":"integer","format":"int32","minimum":0},"projectId":{"type":["string","null"]},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","format":"int32","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"uniqueId":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceId","resourceGroup","location","managedTagCount","roleAssignmentCount","roleAssignmentIds","customRoleDefinitionCount","customRoleDefinitionIds","stackPermissionsApplied"],"properties":{"clientId":{"type":["string","null"]},"customRoleDefinitionCount":{"type":"integer","format":"int32","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":["string","null"]},"location":{"type":"string"},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"principalId":{"type":["string","null"]},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","format":"int32","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tenantId":{"type":["string","null"]},"type":{"type":["string","null"]}},"x-readme-ref-name":"AzureManagedIdentityServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]},{"allOf":[{"type":"object","required":["status","identity","configured"],"properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"}},"x-readme-ref-name":"LocalServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ServiceAccountHeartbeatData"},"resourceType":{"type":"string","enum":["service-account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"applicationGatewaySubnetName":{"type":["string","null"]},"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateEndpointSubnetName":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"},"resourceType":{"type":"string","enum":["network"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","managementPermissionsApplied"],"properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":["string","null"]},"roleName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"AwsRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","roleBound","impersonationGranted"],"properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":["string","null"]},"serviceAccountUniqueId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"GcpRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","roleAssignmentIds"],"properties":{"ficName":{"type":["string","null"]},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"},"tenantId":{"type":["string","null"]},"uamiClientId":{"type":["string","null"]},"uamiPrincipalId":{"type":["string","null"]},"uamiResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]}],"x-readme-ref-name":"RemoteStackManagementHeartbeatData"},"resourceType":{"type":"string","enum":["remote-stack-management"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","registryId","region","registryUri","repositoryPrefix","repositoryCount","repositoriesTruncated","repositories"],"properties":{"pullRoleArn":{"type":["string","null"]},"pushRoleArn":{"type":["string","null"]},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["repositoryArn","registryId","repositoryName","repositoryUri","createdAt","kmsKeyPresent"],"properties":{"createdAt":{"type":"number","format":"double"},"encryptionType":{"type":["string","null"]},"imageTagMutability":{"type":["string","null"]},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":["boolean","null"]}},"x-readme-ref-name":"AwsEcrRepositoryHeartbeatData"}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","format":"int32","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"AwsEcrArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsEcr"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","repositoryId","labelCount","cleanupPolicyCount","kmsKeyNamePresent","iamPolicyEtagPresent","iamBindingCount","iamRoles"],"properties":{"cleanupPolicyCount":{"type":"integer","format":"int32","minimum":0},"cleanupPolicyDryRun":{"type":["boolean","null"]},"createTime":{"type":["string","null"]},"description":{"type":["string","null"]},"format":{"type":["string","null"]},"iamBindingCount":{"type":"integer","format":"int32","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"mode":{"type":["string","null"]},"name":{"type":["string","null"]},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":["string","null"]},"pushServiceAccountEmail":{"type":["string","null"]},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":["boolean","null"]},"sizeBytes":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"updateTime":{"type":["string","null"]}},"x-readme-ref-name":"GcpArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceGroup","location","skuName","adminUserEnabled","anonymousPullEnabled","publicNetworkAccess","networkRuleBypassOptions","ipRuleCount","encryptionKeyVaultUriPresent","encryptionKeyIdentifierPresent","policiesPresent","policyCount","privateEndpointConnectionCount","dataEndpointHostNames","zoneRedundancy","managedTagCount"],"properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":["string","null"]},"dataEndpointEnabled":{"type":["boolean","null"]},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":["string","null"]},"ipRuleCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"loginServer":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":["string","null"]},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","format":"int32","minimum":0},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":["string","null"]},"skuName":{"type":"string"},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"type":{"type":["string","null"]},"zoneRedundancy":{"type":"string"}},"x-readme-ref-name":"AzureContainerRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","registryUrl","reachable"],"properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"LocalArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ArtifactRegistryHeartbeatData"},"resourceType":{"type":"string","enum":["artifact-registry"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectName","environmentVariableCount","serviceRolePresent","encryptionKeyPresent"],"properties":{"artifactsEncryptionDisabled":{"type":["boolean","null"]},"artifactsType":{"type":["string","null"]},"cloudWatchLogsStatus":{"type":["string","null"]},"computeType":{"type":["string","null"]},"created":{"type":["number","null"],"format":"double"},"description":{"type":["string","null"]},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":["string","null"]},"environmentType":{"type":["string","null"]},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"imagePullCredentialsType":{"type":["string","null"]},"lastModified":{"type":["number","null"],"format":"double"},"privilegedMode":{"type":["boolean","null"]},"projectArn":{"type":["string","null"]},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":["integer","null"],"format":"int32"},"s3LogsStatus":{"type":["string","null"]},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"timeoutInMinutes":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"AwsCodeBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","buildConfigId","environmentVariableCount"],"properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}}}]},{"allOf":[{"type":"object","required":["status","managedEnvironmentId","resourceGroupName","environmentVariableCount"],"properties":{"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":["string","null"]},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","jobName","namespace","conditionCount","events"],"properties":{"active":{"type":["integer","null"],"format":"int32"},"completionTime":{"type":["string","null"],"format":"date-time"},"conditionCount":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"failed":{"type":["integer","null"],"format":"int32"},"imageDigest":{"type":["string","null"]},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":["string","null"],"format":"date-time"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"succeeded":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"KubernetesBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesJob"]}}}]}],"x-readme-ref-name":"BuildHeartbeatData"},"resourceType":{"type":"string","enum":["build"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectId","serviceName","enabled"],"properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":["string","null"]},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":["string","null"]},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"},"title":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceUsageActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","resourceTypeCount","registered"],"properties":{"namespace":{"type":"string"},"providerId":{"type":["string","null"]},"registered":{"type":"boolean"},"registrationPolicy":{"type":["string","null"]},"registrationState":{"type":["string","null"]},"resourceTypeCount":{"type":"integer","format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceProviderActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}}}]}],"x-readme-ref-name":"ServiceActivationHeartbeatData"},"resourceType":{"type":"string","enum":["service_activation"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","managedTags"],"properties":{"location":{"type":["string","null"]},"managedTags":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatData"},"resourceType":{"type":"string","enum":["azure_resource_group"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","primaryEndpoints","secondaryEndpoints"],"properties":{"allowBlobPublicAccess":{"type":["boolean","null"]},"allowSharedKeyAccess":{"type":["boolean","null"]},"encryptionKeySource":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"networkBypass":{"type":["string","null"]},"networkDefaultAction":{"type":["string","null"]},"networkIpRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkResourceAccessRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkVirtualNetworkRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"requireInfrastructureEncryption":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"supportsHttpsTrafficOnly":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureStorageAccountHeartbeatData"},"resourceType":{"type":"string","enum":["azure_storage_account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","workloadProfileCount","workloadProfiles"],"properties":{"customDomainVerificationId":{"type":["string","null"]},"defaultDomain":{"type":["string","null"]},"eventStreamEndpoint":{"type":["string","null"]},"infrastructureResourceGroup":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"staticIp":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatStatus"},"workloadProfileCount":{"type":"integer","format":"int32","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","required":["name","workloadProfileType"],"properties":{"maximumCount":{"type":["integer","null"],"format":"int32"},"minimumCount":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentWorkloadProfile"}},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatData"},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","privateEndpointConnectionCount"],"properties":{"createdAt":{"type":["string","null"]},"disableLocalAuth":{"type":["boolean","null"]},"location":{"type":["string","null"]},"metricId":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"namespaceStatus":{"type":["string","null"]},"premiumMessagingPartitions":{"type":["integer","null"],"format":"int32"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"serviceBusEndpoint":{"type":["string","null"]},"skuCapacity":{"type":["integer","null"],"format":"int32"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"updatedAt":{"type":["string","null"]},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureServiceBusNamespaceHeartbeatData"},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","region"],"properties":{"region":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AwsBedrockAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsBedrock"]}}}]},{"allOf":[{"type":"object","required":["status","project","location"],"properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"GcpVertexAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVertex"]}}}]},{"allOf":[{"type":"object","required":["status","accountName"],"properties":{"accountName":{"type":"string"},"endpoint":{"type":["string","null"]},"location":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AzureFoundryAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureFoundry"]}}}]},{"allOf":[{"type":"object","required":["status","provider"],"properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"ExternalAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["external"]}}}]}],"x-readme-ref-name":"AiHeartbeatData"},"resourceType":{"type":"string","enum":["ai"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","description":"AWS: MicroVMs started from one image, counted across every version.","required":["status","imageIdentifier","activeSessions","versionsWithSessions"],"properties":{"activeSessions":{"type":"integer","format":"int32","description":"Sessions running now. Counted across all image versions, because a rolled version stays a\nscope until its own MicroVMs are gone.","minimum":0},"imageIdentifier":{"type":"string","description":"Image the sessions belong to."},"imageState":{"type":["string","null"],"description":"The image's own lifecycle state, which is where AWS surfaces base-image deprecation."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"},"versionsWithSessions":{"type":"integer","format":"int32","description":"Image versions still carrying sessions.","minimum":0}},"x-readme-ref-name":"AwsMicrovmSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsMicrovm"]}}}]},{"allOf":[{"type":"object","description":"Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here.","required":["status","sandboxGroup"],"properties":{"provisioningState":{"type":["string","null"]},"sandboxGroup":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"AzureSandboxGroupHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureSandboxGroup"]}}}]},{"allOf":[{"type":"object","description":"Kubernetes: pods carrying the sandbox label, in the deployment's namespace.","required":["status","namespace","activeSessions","idlePods"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"idlePods":{"type":"integer","format":"int32","description":"Claimed but unused pods waiting in the pool.","minimum":0},"namespace":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesPods"]}}}]},{"allOf":[{"type":"object","description":"Local: containers Docker still holds for this sandbox.","required":["status","activeSessions","routeServing"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"routeServing":{"type":"boolean","description":"Whether the loopback route is serving in this process. False after a manager restart until\nthe next tick rebinds it."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"LocalSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"description":"Content-free telemetry about a sandbox's sessions.\n\nNever anything from inside a session. A controller reaches only the cloud's management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it.","x-readme-ref-name":"SandboxHeartbeatData"},"resourceType":{"type":"string","enum":["sandbox"]}}}],"x-readme-ref-name":"ResourceHeartbeatData"},"deploymentId":{"type":["string","null"]},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","required":["source","format","collectedAt","body","truncated"],"properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"],"x-readme-ref-name":"RawHeartbeatSnippetFormat"},"source":{"type":"string"},"truncated":{"type":"boolean"}},"x-readme-ref-name":"RawHeartbeatSnippet"}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceHeartbeat"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/resourceHeartbeatData.json b/packages/core/src/generated/schemas/resourceHeartbeatData.json index b4a3eca10..48b5c911a 100644 --- a/packages/core/src/generated/schemas/resourceHeartbeatData.json +++ b/packages/core/src/generated/schemas/resourceHeartbeatData.json @@ -1 +1 @@ -{"oneOf":[{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent","publicAccessBlockPresent"],"properties":{"blockPublicAcls":{"type":["boolean","null"]},"blockPublicPolicy":{"type":["boolean","null"]},"bucketAclPresent":{"type":["boolean","null"]},"bucketLocation":{"type":["string","null"]},"bucketPolicyPresent":{"type":["boolean","null"]},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":["boolean","null"]},"ignorePublicAcls":{"type":["boolean","null"]},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":["string","null"]},"restrictPublicBuckets":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"versioningEnabled":{"type":["boolean","null"]},"versioningStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsS3StorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsS3"]}}}]},{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent"],"properties":{"bucketId":{"type":["string","null"]},"defaultKmsKeyName":{"type":["string","null"]},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"location":{"type":["string","null"]},"locationType":{"type":["string","null"]},"name":{"type":"string"},"publicAccessPrevention":{"type":["string","null"]},"retentionPeriod":{"type":["string","null"]},"retentionPolicyEffectiveTime":{"type":["string","null"]},"retentionPolicyIsLocked":{"type":["boolean","null"]},"softDeleteEffectiveTime":{"type":["string","null"]},"softDeleteRetentionDurationSeconds":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"storageClass":{"type":["string","null"]},"uniformBucketLevelAccessEnabled":{"type":["boolean","null"]},"uniformBucketLevelAccessLockedTime":{"type":["string","null"]},"versioningEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"GcpCloudStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"accessTier":{"type":["string","null"]},"accountKind":{"type":["string","null"]},"allowBlobPublicAccess":{"type":["boolean","null"]},"blobDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"blobDeleteRetentionEnabled":{"type":["boolean","null"]},"blobEncryptionEnabled":{"type":["boolean","null"]},"blobVersioningEnabled":{"type":["boolean","null"]},"changeFeedEnabled":{"type":["boolean","null"]},"changeFeedRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionEnabled":{"type":["boolean","null"]},"containerPublicAccess":{"type":["string","null"]},"encryptionKeySource":{"type":["string","null"]},"fileEncryptionEnabled":{"type":["boolean","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"primaryLocation":{"type":["string","null"]},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"queueEncryptionEnabled":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"secondaryLocation":{"type":["string","null"]},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"statusOfPrimary":{"type":["string","null"]},"statusOfSecondary":{"type":["string","null"]},"storageAccountName":{"type":["string","null"]},"tableEncryptionEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureBlobStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureBlob"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"}},"x-readme-ref-name":"LocalStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"StorageHeartbeatData"},"resourceType":{"type":"string","enum":["storage"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","functionName","layerCount","functionUrlCorsPresent","triggerCount"],"properties":{"codeSha256":{"type":["string","null"]},"functionName":{"type":"string"},"functionUrlAuthType":{"type":["string","null"]},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":["string","null"]},"lastUpdateStatus":{"type":["string","null"]},"lastUpdateStatusReason":{"type":["string","null"]},"lastUpdateStatusReasonCode":{"type":["string","null"]},"layerCount":{"type":"integer","format":"int32","minimum":0},"memorySizeMb":{"type":["integer","null"],"format":"int64"},"packageType":{"type":["string","null"]},"revisionId":{"type":["string","null"]},"runtime":{"type":["string","null"]},"state":{"type":["string","null"]},"stateReason":{"type":["string","null"]},"stateReasonCode":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"timeoutSeconds":{"type":["integer","null"],"format":"int64"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"version":{"type":["string","null"]}},"x-readme-ref-name":"AwsLambdaWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsLambda"]}}}]},{"allOf":[{"type":"object","required":["status","service","urls","trafficCount"],"properties":{"containerImage":{"type":["string","null"]},"cpuLimit":{"type":["string","null"]},"generation":{"type":["integer","null"],"format":"int64"},"latestCreatedRevision":{"type":["string","null"]},"latestReadyRevision":{"type":["string","null"]},"maxInstanceCount":{"type":["integer","null"],"format":"int32"},"memoryLimit":{"type":["string","null"]},"minInstanceCount":{"type":["integer","null"],"format":"int32"},"observedGeneration":{"type":["integer","null"],"format":"int64"},"region":{"type":["string","null"]},"service":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"trafficCount":{"type":"integer","format":"int32","minimum":0},"uri":{"type":["string","null"]},"urls":{"type":"array","items":{"type":"string"}}},"x-readme-ref-name":"GcpCloudRunWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}}}]},{"allOf":[{"type":"object","required":["status","appName"],"properties":{"appName":{"type":"string"},"cpu":{"type":["number","null"],"format":"double"},"environmentName":{"type":["string","null"]},"ingressFqdn":{"type":["string","null"]},"maxReplicas":{"type":["integer","null"],"format":"int32"},"memory":{"type":["string","null"]},"minReplicas":{"type":["integer","null"],"format":"int32"},"provisioningState":{"type":["string","null"]},"revision":{"type":["string","null"]},"runningStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","triggerCount","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","commandSupported","imagePathPresent","triggerCount","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"process":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"readinessProbeOk":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"LocalWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"WorkerHeartbeatData"},"resourceType":{"type":"string","enum":["worker"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","containerId","schedulingMode","replicas","attentionCount","replicaUnits","events"],"properties":{"attentionCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"latestUpdateTimestamp":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"observedImage":{"type":["string","null"]},"replicaUnits":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"],"x-readme-ref-name":"HorizonWorkloadSchedulingMode"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"HorizonContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["horizonPlatform"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","portCount","bindMountCount","runtimeReachable","events"],"properties":{"bindMountCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":["string","null"]},"containerUnit":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"localUrl":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":["string","null"]},"portCount":{"type":"integer","format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ContainerHeartbeatData"},"resourceType":{"type":"string","enum":["container"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"GcpDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AzureDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"MachinesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","replicas","commandSupported","pods","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]}},"x-readme-ref-name":"KubernetesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","runtimeId","commandSupported","imagePathPresent","events"],"properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"exitReason":{"type":["string","null"]},"imagePathPresent":{"type":"boolean"},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"DaemonHeartbeatData"},"resourceType":{"type":"string","enum":["daemon"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AwsComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"GcpComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AzureComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","machines"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"machines":{"type":"array","items":{"type":"object","required":["machineId","status","capacityGroup","zone","lastHeartbeat","replicaCount","drainForce"],"properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":["number","null"],"format":"double"},"drainBlockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"horizondVersion":{"type":["string","null"]},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":["integer","null"],"format":"int64"},"overlayIp":{"type":["string","null"]},"publicIp":{"type":["string","null"]},"replicaCount":{"type":"integer","format":"int64"},"status":{"type":"string"},"zone":{"type":"string"}},"x-readme-ref-name":"MachinesComputeMachineStatus"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"MachinesComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","dockerAvailable","networkAvailable"],"properties":{"dockerApiVersion":{"type":["string","null"]},"dockerArch":{"type":["string","null"]},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":["string","null"]},"dockerVersion":{"type":["string","null"]},"hostIdentifier":{"type":["string","null"]},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":["string","null"]},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"runningContainers":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"},"trackedContainers":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"LocalComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ComputeClusterHeartbeatData"},"resourceType":{"type":"string","enum":["compute-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","nodeCounts","podCounts","name","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":["string","null"]},"nodeCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"nodeStatuses":{"type":"array","items":{"type":"object","required":["name","ready","roles","labels","allocatable","capacity"],"properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesNodeConditionStatus"}},"containerRuntimeVersion":{"type":["string","null"]},"kubeletVersion":{"type":["string","null"]},"labels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":["string","null"]},"usage":{"oneOf":[{"type":"null"},{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"KubernetesNodeUsage"}]}},"x-readme-ref-name":"KubernetesClusterNodeStatus"}},"podCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesClusterHeartbeatData"},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","approximateCounts"],"properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateInFlightMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateVisibleMessages":{"type":["integer","null"],"format":"int64","minimum":0},"contentBasedDeduplication":{"type":["boolean","null"]},"deduplicationScope":{"type":["string","null"]},"delaySeconds":{"type":["integer","null"],"format":"int32","minimum":0},"fifoQueue":{"type":["boolean","null"]},"fifoThroughputLimit":{"type":["string","null"]},"kmsDataKeyReusePeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"kmsMasterKeyId":{"type":["string","null"]},"maximumMessageSize":{"type":["integer","null"],"format":"int32","minimum":0},"messageRetentionPeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"queueArn":{"type":["string","null"]},"queueUrl":{"type":["string","null"]},"receiveMessageWaitTimeSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"redriveAllowPolicy":{"type":["string","null"]},"redrivePolicy":{"type":["string","null"]},"region":{"type":["string","null"]},"sqsManagedSseEnabled":{"type":["boolean","null"]},"sseEnabled":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"visibilityTimeoutSeconds":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"AwsSqsQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsSqs"]}}}]},{"allOf":[{"type":"object","required":["status","topicName","topicLabels","subscriptionLabels","messageStorageAllowedPersistenceRegions","subscriptionPushAttributes"],"properties":{"endpoint":{"type":["string","null"]},"kmsKeyName":{"type":["string","null"]},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":["boolean","null"]},"projectId":{"type":["string","null"]},"schemaEncoding":{"type":["string","null"]},"schemaFirstRevisionId":{"type":["string","null"]},"schemaLastRevisionId":{"type":["string","null"]},"schemaName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"subscriptionAckDeadlineSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterTopic":{"type":["string","null"]},"subscriptionDetached":{"type":["boolean","null"]},"subscriptionEnableMessageOrdering":{"type":["boolean","null"]},"subscriptionFilter":{"type":["string","null"]},"subscriptionFullName":{"type":["string","null"]},"subscriptionLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":["string","null"]},"subscriptionName":{"type":["string","null"]},"subscriptionPushAttributes":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionPushConfigPresent":{"type":["boolean","null"]},"subscriptionPushEndpoint":{"type":["string","null"]},"subscriptionPushNoWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionPushOidcAudience":{"type":["string","null"]},"subscriptionPushOidcServiceAccountEmail":{"type":["string","null"]},"subscriptionPushPubsubWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionRetainAckedMessages":{"type":["boolean","null"]},"subscriptionState":{"type":["string","null"]},"topicFullName":{"type":["string","null"]},"topicLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"topicMessageRetentionDuration":{"type":["string","null"]},"topicName":{"type":"string"},"topicState":{"type":["string","null"]}},"x-readme-ref-name":"GcpPubSubQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpPubSub"]}}}]},{"allOf":[{"type":"object","required":["status","name","namespaceName"],"properties":{"accessedAt":{"type":["string","null"]},"activeMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"autoDeleteOnIdle":{"type":["string","null"]},"createdAt":{"type":["string","null"]},"deadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"deadLetteringOnMessageExpiration":{"type":["boolean","null"]},"defaultMessageTimeToLive":{"type":["string","null"]},"duplicateDetectionHistoryTimeWindow":{"type":["string","null"]},"enableBatchedOperations":{"type":["boolean","null"]},"enableExpress":{"type":["boolean","null"]},"enablePartitioning":{"type":["boolean","null"]},"endpoint":{"type":["string","null"]},"forwardDeadLetteredMessagesTo":{"type":["string","null"]},"forwardTo":{"type":["string","null"]},"lockDuration":{"type":["string","null"]},"maxDeliveryCount":{"type":["integer","null"],"format":"int32","minimum":0},"maxMessageSizeInKilobytes":{"type":["integer","null"],"format":"int64","minimum":0},"maxSizeInMegabytes":{"type":["integer","null"],"format":"int32","minimum":0},"messageCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":["string","null"]},"requiresDuplicateDetection":{"type":["boolean","null"]},"requiresSession":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"scheduledMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"sizeInBytes":{"type":["integer","null"],"format":"int64","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"transferDeadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"transferMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"updatedAt":{"type":["string","null"]}},"x-readme-ref-name":"AzureServiceBusQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureServiceBus"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"name":{"type":"string"},"path":{"type":["string","null"]},"serviceStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"}},"x-readme-ref-name":"LocalQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"QueueHeartbeatData"},"resourceType":{"type":"string","enum":["queue"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","keySchema"],"properties":{"billingMode":{"type":["string","null"]},"deletionProtectionEnabled":{"type":["boolean","null"]},"globalSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"itemCount":{"type":["integer","null"],"format":"int64","minimum":0},"keySchema":{"type":"array","items":{"type":"object","required":["attributeName","keyType"],"properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"x-readme-ref-name":"AwsDynamoDbKeySchemaElement"}},"localSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"region":{"type":["string","null"]},"replicaCount":{"type":["integer","null"],"format":"int32","minimum":0},"restoreInProgress":{"type":["boolean","null"]},"sseStatus":{"type":["string","null"]},"sseType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"streamEnabled":{"type":["boolean","null"]},"streamViewType":{"type":["string","null"]},"tableArn":{"type":["string","null"]},"tableClass":{"type":["string","null"]},"tableSizeBytes":{"type":["integer","null"],"format":"int64","minimum":0},"tableStatus":{"type":["string","null"]},"ttlAttributeName":{"type":["string","null"]},"ttlStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsDynamoDbKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}}}]},{"allOf":[{"type":"object","required":["status","databaseName","cmekEnabled","sourceInfoPresent"],"properties":{"appEngineIntegrationMode":{"type":["string","null"]},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":["string","null"]},"createTime":{"type":["string","null"]},"databaseEdition":{"type":["string","null"]},"databaseName":{"type":"string"},"databaseType":{"type":["string","null"]},"deleteProtectionState":{"type":["string","null"]},"deleteTime":{"type":["string","null"]},"earliestVersionTime":{"type":["string","null"]},"endpoint":{"type":["string","null"]},"locationId":{"type":["string","null"]},"pointInTimeRecoveryEnablement":{"type":["string","null"]},"projectId":{"type":["string","null"]},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"updateTime":{"type":["string","null"]},"versionRetentionPeriod":{"type":["string","null"]}},"x-readme-ref-name":"GcpFirestoreKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpFirestore"]}}}]},{"allOf":[{"type":"object","required":["status","tableName","storageAccountName","tableExists"],"properties":{"endpoint":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"signedIdentifierCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"storageAccountKind":{"type":["string","null"]},"storageAccountLocation":{"type":["string","null"]},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":["string","null"]},"storageAccountProvisioningState":{"type":["string","null"]},"storageAccountResourceId":{"type":["string","null"]},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"x-readme-ref-name":"AzureTableKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureTable"]}}}]},{"allOf":[{"type":"object","required":["status","name","path","pathExists","cloudMetadataSupported"],"properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":["boolean","null"]},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"}},"x-readme-ref-name":"LocalKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"KvHeartbeatData"},"resourceType":{"type":"string","enum":["kv"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"description":"AWS Aurora Serverless v2 backend.","type":"object","required":["status","clusterIdentifier","neverPauses"],"properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":["string","null"]},"engineVersion":{"type":["string","null"]},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":["number","null"],"format":"double","description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"AuroraPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aurora"]}}}],"description":"AWS Aurora Serverless v2 backend."},{"allOf":[{"description":"GCP Cloud SQL backend.","type":"object","required":["status","instanceName"],"properties":{"databaseVersion":{"type":["string","null"]},"instanceName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudSqlPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["cloudSql"]}}}],"description":"GCP Cloud SQL backend."},{"allOf":[{"description":"Azure Flexible Server backend.","type":"object","required":["status","serverName"],"properties":{"serverName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"AzureFlexibleServerPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["flexibleServer"]}}}],"description":"Azure Flexible Server backend."},{"allOf":[{"description":"Local embedded Postgres backend.","type":"object","required":["status","name","version","processRunning"],"properties":{"name":{"type":"string"},"port":{"type":["integer","null"],"format":"int32","minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":"string"}},"x-readme-ref-name":"LocalPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}],"description":"Local embedded Postgres backend."}],"x-readme-ref-name":"PostgresHeartbeatData"},"resourceType":{"type":"string","enum":["postgres"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","accountId","region","prefix","parameterMetadataSampled"],"properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":["boolean","null"]},"latestModifiedAt":{"type":["string","null"],"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledParameterCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledSecureStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringListCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"AwsParameterStoreVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsParameterStore"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","prefix","secretMetadataListed"],"properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"GcpSecretManagerVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}}}]},{"allOf":[{"type":"object","required":["status","name","softDeleteEnabled","softDeleteRetentionDays","rbacAuthorizationEnabled","publicNetworkAccess","accessPolicyCount","privateEndpointConnectionCount","secretMetadataListed"],"properties":{"accessPolicyCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":["string","null"]},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":["boolean","null"]},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":["string","null"]},"skuName":{"type":["string","null"]},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer","format":"int32"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"},"vaultUri":{"type":["string","null"]}},"x-readme-ref-name":"AzureKeyVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureKeyVault"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","prefix","secretMetadataListed"],"properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSecretVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists","secretMetadataListed"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"LocalVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"VaultHeartbeatData"},"resourceType":{"type":"string","enum":["vault"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","roleName","roleArn","roleId","path","createDate","assumeRolePolicyPresent","tagCount","managedTagCount","attachedPolicyCount","attachedPolicyNames","inlinePolicyCount","inlinePolicyNames","stackPermissionsApplied"],"properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","format":"int32","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":["string","null"]},"inlinePolicyCount":{"type":"integer","format":"int32","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":["string","null"]},"lastUsedRegion":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"maxSessionDuration":{"type":["integer","null"],"format":"int32"},"path":{"type":"string"},"permissionsBoundaryArn":{"type":["string","null"]},"permissionsBoundaryType":{"type":["string","null"]},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tagCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsIamRoleServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles"],"properties":{"description":{"type":["string","null"]},"disabled":{"type":["boolean","null"]},"displayName":{"type":["string","null"]},"email":{"type":"string"},"etag":{"type":["string","null"]},"name":{"type":["string","null"]},"oauth2ClientId":{"type":["string","null"]},"projectBindingCount":{"type":"integer","format":"int32","minimum":0},"projectId":{"type":["string","null"]},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","format":"int32","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"uniqueId":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceId","resourceGroup","location","managedTagCount","roleAssignmentCount","roleAssignmentIds","customRoleDefinitionCount","customRoleDefinitionIds","stackPermissionsApplied"],"properties":{"clientId":{"type":["string","null"]},"customRoleDefinitionCount":{"type":"integer","format":"int32","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":["string","null"]},"location":{"type":"string"},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"principalId":{"type":["string","null"]},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","format":"int32","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tenantId":{"type":["string","null"]},"type":{"type":["string","null"]}},"x-readme-ref-name":"AzureManagedIdentityServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]},{"allOf":[{"type":"object","required":["status","identity","configured"],"properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"}},"x-readme-ref-name":"LocalServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ServiceAccountHeartbeatData"},"resourceType":{"type":"string","enum":["service-account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"applicationGatewaySubnetName":{"type":["string","null"]},"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateEndpointSubnetName":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"},"resourceType":{"type":"string","enum":["network"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","managementPermissionsApplied"],"properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":["string","null"]},"roleName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"AwsRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","roleBound","impersonationGranted"],"properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":["string","null"]},"serviceAccountUniqueId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"GcpRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","roleAssignmentIds"],"properties":{"ficName":{"type":["string","null"]},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"},"tenantId":{"type":["string","null"]},"uamiClientId":{"type":["string","null"]},"uamiPrincipalId":{"type":["string","null"]},"uamiResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]}],"x-readme-ref-name":"RemoteStackManagementHeartbeatData"},"resourceType":{"type":"string","enum":["remote-stack-management"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","registryId","region","registryUri","repositoryPrefix","repositoryCount","repositoriesTruncated","repositories"],"properties":{"pullRoleArn":{"type":["string","null"]},"pushRoleArn":{"type":["string","null"]},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["repositoryArn","registryId","repositoryName","repositoryUri","createdAt","kmsKeyPresent"],"properties":{"createdAt":{"type":"number","format":"double"},"encryptionType":{"type":["string","null"]},"imageTagMutability":{"type":["string","null"]},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":["boolean","null"]}},"x-readme-ref-name":"AwsEcrRepositoryHeartbeatData"}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","format":"int32","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"AwsEcrArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsEcr"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","repositoryId","labelCount","cleanupPolicyCount","kmsKeyNamePresent","iamPolicyEtagPresent","iamBindingCount","iamRoles"],"properties":{"cleanupPolicyCount":{"type":"integer","format":"int32","minimum":0},"cleanupPolicyDryRun":{"type":["boolean","null"]},"createTime":{"type":["string","null"]},"description":{"type":["string","null"]},"format":{"type":["string","null"]},"iamBindingCount":{"type":"integer","format":"int32","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"mode":{"type":["string","null"]},"name":{"type":["string","null"]},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":["string","null"]},"pushServiceAccountEmail":{"type":["string","null"]},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":["boolean","null"]},"sizeBytes":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"updateTime":{"type":["string","null"]}},"x-readme-ref-name":"GcpArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceGroup","location","skuName","adminUserEnabled","anonymousPullEnabled","publicNetworkAccess","networkRuleBypassOptions","ipRuleCount","encryptionKeyVaultUriPresent","encryptionKeyIdentifierPresent","policiesPresent","policyCount","privateEndpointConnectionCount","dataEndpointHostNames","zoneRedundancy","managedTagCount"],"properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":["string","null"]},"dataEndpointEnabled":{"type":["boolean","null"]},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":["string","null"]},"ipRuleCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"loginServer":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":["string","null"]},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","format":"int32","minimum":0},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":["string","null"]},"skuName":{"type":"string"},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"type":{"type":["string","null"]},"zoneRedundancy":{"type":"string"}},"x-readme-ref-name":"AzureContainerRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","registryUrl","reachable"],"properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"LocalArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ArtifactRegistryHeartbeatData"},"resourceType":{"type":"string","enum":["artifact-registry"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectName","environmentVariableCount","serviceRolePresent","encryptionKeyPresent"],"properties":{"artifactsEncryptionDisabled":{"type":["boolean","null"]},"artifactsType":{"type":["string","null"]},"cloudWatchLogsStatus":{"type":["string","null"]},"computeType":{"type":["string","null"]},"created":{"type":["number","null"],"format":"double"},"description":{"type":["string","null"]},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":["string","null"]},"environmentType":{"type":["string","null"]},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"imagePullCredentialsType":{"type":["string","null"]},"lastModified":{"type":["number","null"],"format":"double"},"privilegedMode":{"type":["boolean","null"]},"projectArn":{"type":["string","null"]},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":["integer","null"],"format":"int32"},"s3LogsStatus":{"type":["string","null"]},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"timeoutInMinutes":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"AwsCodeBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","buildConfigId","environmentVariableCount"],"properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}}}]},{"allOf":[{"type":"object","required":["status","managedEnvironmentId","resourceGroupName","environmentVariableCount"],"properties":{"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":["string","null"]},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","jobName","namespace","conditionCount","events"],"properties":{"active":{"type":["integer","null"],"format":"int32"},"completionTime":{"type":["string","null"],"format":"date-time"},"conditionCount":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"failed":{"type":["integer","null"],"format":"int32"},"imageDigest":{"type":["string","null"]},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":["string","null"],"format":"date-time"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"succeeded":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"KubernetesBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesJob"]}}}]}],"x-readme-ref-name":"BuildHeartbeatData"},"resourceType":{"type":"string","enum":["build"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectId","serviceName","enabled"],"properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":["string","null"]},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":["string","null"]},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"},"title":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceUsageActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","resourceTypeCount","registered"],"properties":{"namespace":{"type":"string"},"providerId":{"type":["string","null"]},"registered":{"type":"boolean"},"registrationPolicy":{"type":["string","null"]},"registrationState":{"type":["string","null"]},"resourceTypeCount":{"type":"integer","format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceProviderActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}}}]}],"x-readme-ref-name":"ServiceActivationHeartbeatData"},"resourceType":{"type":"string","enum":["service_activation"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","managedTags"],"properties":{"location":{"type":["string","null"]},"managedTags":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatData"},"resourceType":{"type":"string","enum":["azure_resource_group"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","primaryEndpoints","secondaryEndpoints"],"properties":{"allowBlobPublicAccess":{"type":["boolean","null"]},"allowSharedKeyAccess":{"type":["boolean","null"]},"encryptionKeySource":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"networkBypass":{"type":["string","null"]},"networkDefaultAction":{"type":["string","null"]},"networkIpRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkResourceAccessRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkVirtualNetworkRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"requireInfrastructureEncryption":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"supportsHttpsTrafficOnly":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureStorageAccountHeartbeatData"},"resourceType":{"type":"string","enum":["azure_storage_account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","workloadProfileCount","workloadProfiles"],"properties":{"customDomainVerificationId":{"type":["string","null"]},"defaultDomain":{"type":["string","null"]},"eventStreamEndpoint":{"type":["string","null"]},"infrastructureResourceGroup":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"staticIp":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatStatus"},"workloadProfileCount":{"type":"integer","format":"int32","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","required":["name","workloadProfileType"],"properties":{"maximumCount":{"type":["integer","null"],"format":"int32"},"minimumCount":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentWorkloadProfile"}},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatData"},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","privateEndpointConnectionCount"],"properties":{"createdAt":{"type":["string","null"]},"disableLocalAuth":{"type":["boolean","null"]},"location":{"type":["string","null"]},"metricId":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"namespaceStatus":{"type":["string","null"]},"premiumMessagingPartitions":{"type":["integer","null"],"format":"int32"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"serviceBusEndpoint":{"type":["string","null"]},"skuCapacity":{"type":["integer","null"],"format":"int32"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"updatedAt":{"type":["string","null"]},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureServiceBusNamespaceHeartbeatData"},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","region"],"properties":{"region":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AwsBedrockAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsBedrock"]}}}]},{"allOf":[{"type":"object","required":["status","project","location"],"properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"GcpVertexAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVertex"]}}}]},{"allOf":[{"type":"object","required":["status","accountName"],"properties":{"accountName":{"type":"string"},"endpoint":{"type":["string","null"]},"location":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AzureFoundryAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureFoundry"]}}}]},{"allOf":[{"type":"object","required":["status","provider"],"properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"ExternalAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["external"]}}}]}],"x-readme-ref-name":"AiHeartbeatData"},"resourceType":{"type":"string","enum":["ai"]}}}],"x-readme-ref-name":"ResourceHeartbeatData"} \ No newline at end of file +{"oneOf":[{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent","publicAccessBlockPresent"],"properties":{"blockPublicAcls":{"type":["boolean","null"]},"blockPublicPolicy":{"type":["boolean","null"]},"bucketAclPresent":{"type":["boolean","null"]},"bucketLocation":{"type":["string","null"]},"bucketPolicyPresent":{"type":["boolean","null"]},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":["boolean","null"]},"ignorePublicAcls":{"type":["boolean","null"]},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":["string","null"]},"restrictPublicBuckets":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"versioningEnabled":{"type":["boolean","null"]},"versioningStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsS3StorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsS3"]}}}]},{"allOf":[{"type":"object","required":["status","name","lifecyclePresent","encryptionConfigPresent"],"properties":{"bucketId":{"type":["string","null"]},"defaultKmsKeyName":{"type":["string","null"]},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":["integer","null"],"format":"int64","minimum":0},"location":{"type":["string","null"]},"locationType":{"type":["string","null"]},"name":{"type":"string"},"publicAccessPrevention":{"type":["string","null"]},"retentionPeriod":{"type":["string","null"]},"retentionPolicyEffectiveTime":{"type":["string","null"]},"retentionPolicyIsLocked":{"type":["boolean","null"]},"softDeleteEffectiveTime":{"type":["string","null"]},"softDeleteRetentionDurationSeconds":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"storageClass":{"type":["string","null"]},"uniformBucketLevelAccessEnabled":{"type":["boolean","null"]},"uniformBucketLevelAccessLockedTime":{"type":["string","null"]},"versioningEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"GcpCloudStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"accessTier":{"type":["string","null"]},"accountKind":{"type":["string","null"]},"allowBlobPublicAccess":{"type":["boolean","null"]},"blobDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"blobDeleteRetentionEnabled":{"type":["boolean","null"]},"blobEncryptionEnabled":{"type":["boolean","null"]},"blobVersioningEnabled":{"type":["boolean","null"]},"changeFeedEnabled":{"type":["boolean","null"]},"changeFeedRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionDays":{"type":["integer","null"],"format":"int64","minimum":0},"containerDeleteRetentionEnabled":{"type":["boolean","null"]},"containerPublicAccess":{"type":["string","null"]},"encryptionKeySource":{"type":["string","null"]},"fileEncryptionEnabled":{"type":["boolean","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"primaryLocation":{"type":["string","null"]},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"queueEncryptionEnabled":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"secondaryLocation":{"type":["string","null"]},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"statusOfPrimary":{"type":["string","null"]},"statusOfSecondary":{"type":["string","null"]},"storageAccountName":{"type":["string","null"]},"tableEncryptionEnabled":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureBlobStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureBlob"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"}},"x-readme-ref-name":"LocalStorageHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"StorageHeartbeatData"},"resourceType":{"type":"string","enum":["storage"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","functionName","layerCount","functionUrlCorsPresent","triggerCount"],"properties":{"codeSha256":{"type":["string","null"]},"functionName":{"type":"string"},"functionUrlAuthType":{"type":["string","null"]},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":["string","null"]},"lastUpdateStatus":{"type":["string","null"]},"lastUpdateStatusReason":{"type":["string","null"]},"lastUpdateStatusReasonCode":{"type":["string","null"]},"layerCount":{"type":"integer","format":"int32","minimum":0},"memorySizeMb":{"type":["integer","null"],"format":"int64"},"packageType":{"type":["string","null"]},"revisionId":{"type":["string","null"]},"runtime":{"type":["string","null"]},"state":{"type":["string","null"]},"stateReason":{"type":["string","null"]},"stateReasonCode":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"timeoutSeconds":{"type":["integer","null"],"format":"int64"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"version":{"type":["string","null"]}},"x-readme-ref-name":"AwsLambdaWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsLambda"]}}}]},{"allOf":[{"type":"object","required":["status","service","urls","trafficCount"],"properties":{"containerImage":{"type":["string","null"]},"cpuLimit":{"type":["string","null"]},"generation":{"type":["integer","null"],"format":"int64"},"latestCreatedRevision":{"type":["string","null"]},"latestReadyRevision":{"type":["string","null"]},"maxInstanceCount":{"type":["integer","null"],"format":"int32"},"memoryLimit":{"type":["string","null"]},"minInstanceCount":{"type":["integer","null"],"format":"int32"},"observedGeneration":{"type":["integer","null"],"format":"int64"},"region":{"type":["string","null"]},"service":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"trafficCount":{"type":"integer","format":"int32","minimum":0},"uri":{"type":["string","null"]},"urls":{"type":"array","items":{"type":"string"}}},"x-readme-ref-name":"GcpCloudRunWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}}}]},{"allOf":[{"type":"object","required":["status","appName"],"properties":{"appName":{"type":"string"},"cpu":{"type":["number","null"],"format":"double"},"environmentName":{"type":["string","null"]},"ingressFqdn":{"type":["string","null"]},"maxReplicas":{"type":["integer","null"],"format":"int32"},"memory":{"type":["string","null"]},"minReplicas":{"type":["integer","null"],"format":"int32"},"provisioningState":{"type":["string","null"]},"revision":{"type":["string","null"]},"runningStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","triggerCount","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","commandSupported","imagePathPresent","triggerCount","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"process":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"readinessProbeOk":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"triggerCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"LocalWorkerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"WorkerHeartbeatData"},"resourceType":{"type":"string","enum":["worker"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","containerId","schedulingMode","replicas","attentionCount","replicaUnits","events"],"properties":{"attentionCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"latestUpdateTimestamp":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"observedImage":{"type":["string","null"]},"replicaUnits":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"],"x-readme-ref-name":"HorizonWorkloadSchedulingMode"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"HorizonContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["horizonPlatform"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","workloadKind","replicas","pods","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"],"x-readme-ref-name":"KubernetesWorkloadKind"}},"x-readme-ref-name":"KubernetesContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","portCount","bindMountCount","runtimeReachable","events"],"properties":{"bindMountCount":{"type":"integer","format":"int32","minimum":0},"containerId":{"type":["string","null"]},"containerUnit":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"image":{"type":["string","null"]},"localUrl":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":["string","null"]},"portCount":{"type":"integer","format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalContainerHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ContainerHeartbeatData"},"resourceType":{"type":"string","enum":["container"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"GcpDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AzureDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","horizonClusterId","horizonStatus","capacityGroup","desiredMachines","assignedMachines","healthyInstances","unavailableInstances","commandSupported","latestUpdateTimestamp","daemonInstances","events"],"properties":{"assignedMachines":{"type":"integer","format":"int32","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","required":["replicaId","name","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"ip":{"type":["string","null"]},"machineId":{"type":["string","null"]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"message":{"type":["string","null"]},"metricsHealthy":{"type":["boolean","null"]},"metricsLastUpdated":{"type":["string","null"]},"metricsStatus":{"type":["string","null"]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"phase":{"type":["string","null"]},"ready":{"type":"boolean"},"reason":{"type":["string","null"]},"replicaId":{"type":"string"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":["string","null"]},"terminatedReason":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeUnitStatus"}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"eventId":{"type":["string","null"]},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"details":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"id":{"type":["string","null"]},"kind":{"type":["string","null"]},"machineId":{"type":["string","null"]},"name":{"type":["string","null"]},"replicaId":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"ManagedRuntimeEventSnapshot"}},"healthyInstances":{"type":"integer","format":"int32","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":["string","null"]},"horizonStatusReason":{"type":["string","null"]},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"unavailableInstances":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"MachinesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","name","replicas","commandSupported","pods","events"],"properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","required":["name","ready","restartCount","ownerReferences"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodeName":{"type":["string","null"]},"ownerReferences":{"type":"array","items":{"type":"object","required":["kind","name","uid","controller"],"properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"x-readme-ref-name":"KubernetesOwnerReference"}},"phase":{"type":["string","null"]},"podIp":{"type":["string","null"]},"ready":{"type":"boolean"},"restartCount":{"type":"integer","format":"int32","minimum":0},"terminatedReason":{"type":["string","null"]},"uid":{"type":["string","null"]},"waitingReason":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesPodRuntimeUnitStatus"}},"replicas":{"type":"object","properties":{"available":{"type":["integer","null"],"format":"int32","minimum":0},"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"misscheduled":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0},"updated":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"WorkloadReplicaStatus"},"restarts":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"workload":{"oneOf":[{"type":"null"},{"type":"object","required":["conditions"],"properties":{"availableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"lastTransitionTime":{"type":["string","null"],"format":"date-time"},"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesWorkloadCondition"}},"desiredGeneration":{"type":["integer","null"],"format":"int64"},"desiredReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"observedGeneration":{"type":["integer","null"],"format":"int64"},"readyReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"rolloutReason":{"type":["string","null"]},"updatedReplicas":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"KubernetesWorkloadStatus"}]}},"x-readme-ref-name":"KubernetesDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetes"]}}}]},{"allOf":[{"type":"object","required":["status","runtimeId","commandSupported","imagePathPresent","events"],"properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"null"},{"type":"object","required":["unitId","name","kind","ready"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"kind":{"type":"string","enum":["container","process","daemon"],"x-readme-ref-name":"LocalRuntimeUnitKind"},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"phase":{"type":["string","null"]},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"unitId":{"type":"string"}},"x-readme-ref-name":"LocalRuntimeUnitStatus"}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","required":["timestamp","severity","kind","message"],"properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"subject":{"oneOf":[{"type":"null"},{"type":"object","required":["kind"],"properties":{"id":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":["string","null"]}},"x-readme-ref-name":"LocalRuntimeEventSubject"}]},"timestamp":{"type":"string","format":"date-time"}},"x-readme-ref-name":"LocalRuntimeEventSnapshot"}},"exitReason":{"type":["string","null"]},"imagePathPresent":{"type":"boolean"},"pid":{"type":["integer","null"],"format":"int32","minimum":0},"restartCount":{"type":["integer","null"],"format":"int32","minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"}},"x-readme-ref-name":"LocalDaemonHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"DaemonHeartbeatData"},"resourceType":{"type":"string","enum":["daemon"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AwsComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aws"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"GcpComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcp"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","providerFleets"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"providerFleets":{"type":"array","items":{"type":"object","required":["groupId","providerId","currentMachines","desiredMachines"],"properties":{"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"groupId":{"type":"string"},"location":{"type":["string","null"]},"providerId":{"type":"string"}},"x-readme-ref-name":"ProviderFleetStatus"}},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"AzureComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azure"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","capacityGroups","machines"],"properties":{"backendClusterId":{"type":["string","null"]},"capacityGroups":{"type":"array","items":{"type":"object","required":["groupId","currentMachines","desiredMachines"],"properties":{"capacityBlocker":{"oneOf":[{"type":"null"},{"type":"object","required":["category","message","observedAt"],"properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"],"x-readme-ref-name":"ComputeCapacityBlockerCategory"},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":["string","null"]},"providerReference":{"type":["string","null"]}},"x-readme-ref-name":"ComputeCapacityBlocker"}]},"currentMachines":{"type":"integer","format":"int32","minimum":0},"desiredMachines":{"type":"integer","format":"int32","minimum":0},"drainProgress":{"oneOf":[{"type":"null"},{"type":"object","required":["machineId","status","replicaCount","force","stalled"],"properties":{"blockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer","format":"int64"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"],"x-readme-ref-name":"ComputeDrainProgressStatus"}},"x-readme-ref-name":"ComputeDrainProgress"}]},"groupId":{"type":"string"},"instanceType":{"type":["string","null"]},"maxMachines":{"type":["integer","null"],"format":"int32","minimum":0},"minMachines":{"type":["integer","null"],"format":"int32","minimum":0},"recommendation":{"oneOf":[{"type":"null"},{"type":"object","required":["desiredMachines"],"properties":{"desiredMachines":{"type":"integer","format":"int32","minimum":0},"reason":{"type":["string","null"]},"unschedulableReplicas":{"type":["integer","null"],"format":"int32","minimum":0},"utilization":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"ComputeCapacityRecommendation"}]}},"x-readme-ref-name":"ComputeCapacityGroupStatus"}},"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"machines":{"type":"array","items":{"type":"object","required":["machineId","status","capacityGroup","zone","lastHeartbeat","replicaCount","drainForce"],"properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":["number","null"],"format":"double"},"drainBlockers":{"type":"array","items":{"type":"object","required":["workloadName","replicaId","schedulingMode","state","reason"],"properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"x-readme-ref-name":"ComputeDrainBlocker"}},"drainDeadlineAt":{"type":["string","null"]},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":["string","null"]},"drainedAt":{"type":["string","null"]},"horizondVersion":{"type":["string","null"]},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":["integer","null"],"format":"int64"},"overlayIp":{"type":["string","null"]},"publicIp":{"type":["string","null"]},"replicaCount":{"type":"integer","format":"int64"},"status":{"type":"string"},"zone":{"type":"string"}},"x-readme-ref-name":"MachinesComputeMachineStatus"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"}},"x-readme-ref-name":"MachinesComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["machines"]}}}]},{"allOf":[{"type":"object","required":["status","nodes","name","dockerAvailable","networkAvailable"],"properties":{"dockerApiVersion":{"type":["string","null"]},"dockerArch":{"type":["string","null"]},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":["string","null"]},"dockerVersion":{"type":["string","null"]},"hostIdentifier":{"type":["string","null"]},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":["string","null"]},"nodes":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"runningContainers":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ComputeClusterHeartbeatStatus"},"trackedContainers":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"LocalComputeClusterHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ComputeClusterHeartbeatData"},"resourceType":{"type":"string","enum":["compute-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","nodeCounts","podCounts","name","events"],"properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"name":{"type":"string"},"namespace":{"type":["string","null"]},"nodeCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"nodeStatuses":{"type":"array","items":{"type":"object","required":["name","ready","roles","labels","allocatable","capacity"],"properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"pods":{"type":["integer","null"],"format":"int64","minimum":0}},"x-readme-ref-name":"KubernetesNodeResources"},"conditions":{"type":"array","items":{"type":"object","required":["type","status"],"properties":{"message":{"type":["string","null"]},"reason":{"type":["string","null"]},"status":{"type":"string"},"type":{"type":"string"}},"x-readme-ref-name":"KubernetesNodeConditionStatus"}},"containerRuntimeVersion":{"type":["string","null"]},"kubeletVersion":{"type":["string","null"]},"labels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":["string","null"]},"usage":{"oneOf":[{"type":"null"},{"type":"object","properties":{"cpu":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]},"memory":{"oneOf":[{"type":"null"},{"type":"object","required":["value","unit"],"properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"],"x-readme-ref-name":"MetricUnit"},"value":{"type":"number","format":"double"}},"x-readme-ref-name":"MetricSample"}]}},"x-readme-ref-name":"KubernetesNodeUsage"}]}},"x-readme-ref-name":"KubernetesClusterNodeStatus"}},"podCounts":{"type":"object","properties":{"current":{"type":["integer","null"],"format":"int32","minimum":0},"desired":{"type":["integer","null"],"format":"int32","minimum":0},"ready":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"ObservedCounts"},"region":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"WorkloadHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesClusterHeartbeatData"},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","approximateCounts"],"properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateInFlightMessages":{"type":["integer","null"],"format":"int64","minimum":0},"approximateVisibleMessages":{"type":["integer","null"],"format":"int64","minimum":0},"contentBasedDeduplication":{"type":["boolean","null"]},"deduplicationScope":{"type":["string","null"]},"delaySeconds":{"type":["integer","null"],"format":"int32","minimum":0},"fifoQueue":{"type":["boolean","null"]},"fifoThroughputLimit":{"type":["string","null"]},"kmsDataKeyReusePeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"kmsMasterKeyId":{"type":["string","null"]},"maximumMessageSize":{"type":["integer","null"],"format":"int32","minimum":0},"messageRetentionPeriodSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"queueArn":{"type":["string","null"]},"queueUrl":{"type":["string","null"]},"receiveMessageWaitTimeSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"redriveAllowPolicy":{"type":["string","null"]},"redrivePolicy":{"type":["string","null"]},"region":{"type":["string","null"]},"sqsManagedSseEnabled":{"type":["boolean","null"]},"sseEnabled":{"type":["boolean","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"visibilityTimeoutSeconds":{"type":["integer","null"],"format":"int32","minimum":0}},"x-readme-ref-name":"AwsSqsQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsSqs"]}}}]},{"allOf":[{"type":"object","required":["status","topicName","topicLabels","subscriptionLabels","messageStorageAllowedPersistenceRegions","subscriptionPushAttributes"],"properties":{"endpoint":{"type":["string","null"]},"kmsKeyName":{"type":["string","null"]},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":["boolean","null"]},"projectId":{"type":["string","null"]},"schemaEncoding":{"type":["string","null"]},"schemaFirstRevisionId":{"type":["string","null"]},"schemaLastRevisionId":{"type":["string","null"]},"schemaName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"subscriptionAckDeadlineSeconds":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":["integer","null"],"format":"int32","minimum":0},"subscriptionDeadLetterTopic":{"type":["string","null"]},"subscriptionDetached":{"type":["boolean","null"]},"subscriptionEnableMessageOrdering":{"type":["boolean","null"]},"subscriptionFilter":{"type":["string","null"]},"subscriptionFullName":{"type":["string","null"]},"subscriptionLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":["string","null"]},"subscriptionName":{"type":["string","null"]},"subscriptionPushAttributes":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"subscriptionPushConfigPresent":{"type":["boolean","null"]},"subscriptionPushEndpoint":{"type":["string","null"]},"subscriptionPushNoWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionPushOidcAudience":{"type":["string","null"]},"subscriptionPushOidcServiceAccountEmail":{"type":["string","null"]},"subscriptionPushPubsubWrapperWriteMetadata":{"type":["boolean","null"]},"subscriptionRetainAckedMessages":{"type":["boolean","null"]},"subscriptionState":{"type":["string","null"]},"topicFullName":{"type":["string","null"]},"topicLabels":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"topicMessageRetentionDuration":{"type":["string","null"]},"topicName":{"type":"string"},"topicState":{"type":["string","null"]}},"x-readme-ref-name":"GcpPubSubQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpPubSub"]}}}]},{"allOf":[{"type":"object","required":["status","name","namespaceName"],"properties":{"accessedAt":{"type":["string","null"]},"activeMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"autoDeleteOnIdle":{"type":["string","null"]},"createdAt":{"type":["string","null"]},"deadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"deadLetteringOnMessageExpiration":{"type":["boolean","null"]},"defaultMessageTimeToLive":{"type":["string","null"]},"duplicateDetectionHistoryTimeWindow":{"type":["string","null"]},"enableBatchedOperations":{"type":["boolean","null"]},"enableExpress":{"type":["boolean","null"]},"enablePartitioning":{"type":["boolean","null"]},"endpoint":{"type":["string","null"]},"forwardDeadLetteredMessagesTo":{"type":["string","null"]},"forwardTo":{"type":["string","null"]},"lockDuration":{"type":["string","null"]},"maxDeliveryCount":{"type":["integer","null"],"format":"int32","minimum":0},"maxMessageSizeInKilobytes":{"type":["integer","null"],"format":"int64","minimum":0},"maxSizeInMegabytes":{"type":["integer","null"],"format":"int32","minimum":0},"messageCount":{"type":["integer","null"],"format":"int64","minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":["string","null"]},"requiresDuplicateDetection":{"type":["boolean","null"]},"requiresSession":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"scheduledMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"sizeInBytes":{"type":["integer","null"],"format":"int64","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"transferDeadLetterMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"transferMessageCount":{"type":["integer","null"],"format":"int64","minimum":0},"updatedAt":{"type":["string","null"]}},"x-readme-ref-name":"AzureServiceBusQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureServiceBus"]}}}]},{"allOf":[{"type":"object","required":["status","name"],"properties":{"name":{"type":"string"},"path":{"type":["string","null"]},"serviceStatus":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"}},"x-readme-ref-name":"LocalQueueHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"QueueHeartbeatData"},"resourceType":{"type":"string","enum":["queue"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","name","keySchema"],"properties":{"billingMode":{"type":["string","null"]},"deletionProtectionEnabled":{"type":["boolean","null"]},"globalSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"itemCount":{"type":["integer","null"],"format":"int64","minimum":0},"keySchema":{"type":"array","items":{"type":"object","required":["attributeName","keyType"],"properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"x-readme-ref-name":"AwsDynamoDbKeySchemaElement"}},"localSecondaryIndexCount":{"type":["integer","null"],"format":"int32","minimum":0},"name":{"type":"string"},"region":{"type":["string","null"]},"replicaCount":{"type":["integer","null"],"format":"int32","minimum":0},"restoreInProgress":{"type":["boolean","null"]},"sseStatus":{"type":["string","null"]},"sseType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"streamEnabled":{"type":["boolean","null"]},"streamViewType":{"type":["string","null"]},"tableArn":{"type":["string","null"]},"tableClass":{"type":["string","null"]},"tableSizeBytes":{"type":["integer","null"],"format":"int64","minimum":0},"tableStatus":{"type":["string","null"]},"ttlAttributeName":{"type":["string","null"]},"ttlStatus":{"type":["string","null"]}},"x-readme-ref-name":"AwsDynamoDbKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}}}]},{"allOf":[{"type":"object","required":["status","databaseName","cmekEnabled","sourceInfoPresent"],"properties":{"appEngineIntegrationMode":{"type":["string","null"]},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":["string","null"]},"createTime":{"type":["string","null"]},"databaseEdition":{"type":["string","null"]},"databaseName":{"type":"string"},"databaseType":{"type":["string","null"]},"deleteProtectionState":{"type":["string","null"]},"deleteTime":{"type":["string","null"]},"earliestVersionTime":{"type":["string","null"]},"endpoint":{"type":["string","null"]},"locationId":{"type":["string","null"]},"pointInTimeRecoveryEnablement":{"type":["string","null"]},"projectId":{"type":["string","null"]},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"updateTime":{"type":["string","null"]},"versionRetentionPeriod":{"type":["string","null"]}},"x-readme-ref-name":"GcpFirestoreKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpFirestore"]}}}]},{"allOf":[{"type":"object","required":["status","tableName","storageAccountName","tableExists"],"properties":{"endpoint":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"signedIdentifierCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"},"storageAccountKind":{"type":["string","null"]},"storageAccountLocation":{"type":["string","null"]},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":["string","null"]},"storageAccountProvisioningState":{"type":["string","null"]},"storageAccountResourceId":{"type":["string","null"]},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"x-readme-ref-name":"AzureTableKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureTable"]}}}]},{"allOf":[{"type":"object","required":["status","name","path","pathExists","cloudMetadataSupported"],"properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":["boolean","null"]},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"KvHeartbeatStatus"}},"x-readme-ref-name":"LocalKvHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"KvHeartbeatData"},"resourceType":{"type":"string","enum":["kv"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"description":"AWS Aurora Serverless v2 backend.","type":"object","required":["status","clusterIdentifier","neverPauses"],"properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":["string","null"]},"engineVersion":{"type":["string","null"]},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":["number","null"],"format":"double","description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"AuroraPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["aurora"]}}}],"description":"AWS Aurora Serverless v2 backend."},{"allOf":[{"description":"GCP Cloud SQL backend.","type":"object","required":["status","instanceName"],"properties":{"databaseVersion":{"type":["string","null"]},"instanceName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudSqlPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["cloudSql"]}}}],"description":"GCP Cloud SQL backend."},{"allOf":[{"description":"Azure Flexible Server backend.","type":"object","required":["status","serverName"],"properties":{"serverName":{"type":"string"},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":["string","null"]}},"x-readme-ref-name":"AzureFlexibleServerPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["flexibleServer"]}}}],"description":"Azure Flexible Server backend."},{"allOf":[{"description":"Local embedded Postgres backend.","type":"object","required":["status","name","version","processRunning"],"properties":{"name":{"type":"string"},"port":{"type":["integer","null"],"format":"int32","minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"PostgresHeartbeatStatus"},"version":{"type":"string"}},"x-readme-ref-name":"LocalPostgresHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}],"description":"Local embedded Postgres backend."}],"x-readme-ref-name":"PostgresHeartbeatData"},"resourceType":{"type":"string","enum":["postgres"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","accountId","region","prefix","parameterMetadataSampled"],"properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":["boolean","null"]},"latestModifiedAt":{"type":["string","null"],"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledParameterCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledSecureStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringCount":{"type":["integer","null"],"format":"int32","minimum":0},"sampledStringListCount":{"type":["integer","null"],"format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"AwsParameterStoreVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsParameterStore"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","prefix","secretMetadataListed"],"properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"GcpSecretManagerVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}}}]},{"allOf":[{"type":"object","required":["status","name","softDeleteEnabled","softDeleteRetentionDays","rbacAuthorizationEnabled","publicNetworkAccess","accessPolicyCount","privateEndpointConnectionCount","secretMetadataListed"],"properties":{"accessPolicyCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":["string","null"]},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":["boolean","null"]},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":["string","null"]},"skuName":{"type":["string","null"]},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer","format":"int32"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"},"vaultUri":{"type":["string","null"]}},"x-readme-ref-name":"AzureKeyVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureKeyVault"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","prefix","secretMetadataListed"],"properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSecretVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}}}]},{"allOf":[{"type":"object","required":["status","path","pathExists","secretMetadataListed"],"properties":{"isDirectory":{"type":["boolean","null"]},"modifiedAt":{"type":["string","null"],"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":["boolean","null"]},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"VaultHeartbeatStatus"}},"x-readme-ref-name":"LocalVaultHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"VaultHeartbeatData"},"resourceType":{"type":"string","enum":["vault"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","roleName","roleArn","roleId","path","createDate","assumeRolePolicyPresent","tagCount","managedTagCount","attachedPolicyCount","attachedPolicyNames","inlinePolicyCount","inlinePolicyNames","stackPermissionsApplied"],"properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","format":"int32","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":["string","null"]},"inlinePolicyCount":{"type":"integer","format":"int32","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":["string","null"]},"lastUsedRegion":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"maxSessionDuration":{"type":["integer","null"],"format":"int32"},"path":{"type":"string"},"permissionsBoundaryArn":{"type":["string","null"]},"permissionsBoundaryType":{"type":["string","null"]},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tagCount":{"type":"integer","format":"int32","minimum":0}},"x-readme-ref-name":"AwsIamRoleServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles"],"properties":{"description":{"type":["string","null"]},"disabled":{"type":["boolean","null"]},"displayName":{"type":["string","null"]},"email":{"type":"string"},"etag":{"type":["string","null"]},"name":{"type":["string","null"]},"oauth2ClientId":{"type":["string","null"]},"projectBindingCount":{"type":"integer","format":"int32","minimum":0},"projectId":{"type":["string","null"]},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","format":"int32","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"uniqueId":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceId","resourceGroup","location","managedTagCount","roleAssignmentCount","roleAssignmentIds","customRoleDefinitionCount","customRoleDefinitionIds","stackPermissionsApplied"],"properties":{"clientId":{"type":["string","null"]},"customRoleDefinitionCount":{"type":"integer","format":"int32","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":["string","null"]},"location":{"type":"string"},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"principalId":{"type":["string","null"]},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","format":"int32","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"},"tenantId":{"type":["string","null"]},"type":{"type":["string","null"]}},"x-readme-ref-name":"AzureManagedIdentityServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]},{"allOf":[{"type":"object","required":["status","identity","configured"],"properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceAccountHeartbeatStatus"}},"x-readme-ref-name":"LocalServiceAccountHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ServiceAccountHeartbeatData"},"resourceType":{"type":"string","enum":["service-account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"applicationGatewaySubnetName":{"type":["string","null"]},"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateEndpointSubnetName":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"},"resourceType":{"type":"string","enum":["network"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","managementPermissionsApplied"],"properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":["string","null"]},"roleName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"AwsRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsIamRole"]}}}]},{"allOf":[{"type":"object","required":["status","roleBound","impersonationGranted"],"properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":["string","null"]},"serviceAccountUniqueId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"}},"x-readme-ref-name":"GcpRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}}}]},{"allOf":[{"type":"object","required":["status","roleAssignmentIds"],"properties":{"ficName":{"type":["string","null"]},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"RemoteStackManagementHeartbeatStatus"},"tenantId":{"type":["string","null"]},"uamiClientId":{"type":["string","null"]},"uamiPrincipalId":{"type":["string","null"]},"uamiResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureRemoteStackManagementHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}}}]}],"x-readme-ref-name":"RemoteStackManagementHeartbeatData"},"resourceType":{"type":"string","enum":["remote-stack-management"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","registryId","region","registryUri","repositoryPrefix","repositoryCount","repositoriesTruncated","repositories"],"properties":{"pullRoleArn":{"type":["string","null"]},"pushRoleArn":{"type":["string","null"]},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["repositoryArn","registryId","repositoryName","repositoryUri","createdAt","kmsKeyPresent"],"properties":{"createdAt":{"type":"number","format":"double"},"encryptionType":{"type":["string","null"]},"imageTagMutability":{"type":["string","null"]},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":["boolean","null"]}},"x-readme-ref-name":"AwsEcrRepositoryHeartbeatData"}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","format":"int32","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"AwsEcrArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsEcr"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","repositoryId","labelCount","cleanupPolicyCount","kmsKeyNamePresent","iamPolicyEtagPresent","iamBindingCount","iamRoles"],"properties":{"cleanupPolicyCount":{"type":"integer","format":"int32","minimum":0},"cleanupPolicyDryRun":{"type":["boolean","null"]},"createTime":{"type":["string","null"]},"description":{"type":["string","null"]},"format":{"type":["string","null"]},"iamBindingCount":{"type":"integer","format":"int32","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"mode":{"type":["string","null"]},"name":{"type":["string","null"]},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":["string","null"]},"pushServiceAccountEmail":{"type":["string","null"]},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":["boolean","null"]},"sizeBytes":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"updateTime":{"type":["string","null"]}},"x-readme-ref-name":"GcpArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","name","resourceGroup","location","skuName","adminUserEnabled","anonymousPullEnabled","publicNetworkAccess","networkRuleBypassOptions","ipRuleCount","encryptionKeyVaultUriPresent","encryptionKeyIdentifierPresent","policiesPresent","policyCount","privateEndpointConnectionCount","dataEndpointHostNames","zoneRedundancy","managedTagCount"],"properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":["string","null"]},"dataEndpointEnabled":{"type":["boolean","null"]},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":["string","null"]},"ipRuleCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"loginServer":{"type":["string","null"]},"managedTagCount":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":["string","null"]},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","format":"int32","minimum":0},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":["string","null"]},"skuName":{"type":"string"},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"},"type":{"type":["string","null"]},"zoneRedundancy":{"type":"string"}},"x-readme-ref-name":"AzureContainerRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}}}]},{"allOf":[{"type":"object","required":["status","registryUrl","reachable"],"properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ArtifactRegistryHeartbeatStatus"}},"x-readme-ref-name":"LocalArtifactRegistryHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"x-readme-ref-name":"ArtifactRegistryHeartbeatData"},"resourceType":{"type":"string","enum":["artifact-registry"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectName","environmentVariableCount","serviceRolePresent","encryptionKeyPresent"],"properties":{"artifactsEncryptionDisabled":{"type":["boolean","null"]},"artifactsType":{"type":["string","null"]},"cloudWatchLogsStatus":{"type":["string","null"]},"computeType":{"type":["string","null"]},"created":{"type":["number","null"],"format":"double"},"description":{"type":["string","null"]},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":["string","null"]},"environmentType":{"type":["string","null"]},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"imagePullCredentialsType":{"type":["string","null"]},"lastModified":{"type":["number","null"],"format":"double"},"privilegedMode":{"type":["boolean","null"]},"projectArn":{"type":["string","null"]},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":["integer","null"],"format":"int32"},"s3LogsStatus":{"type":["string","null"]},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"timeoutInMinutes":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"AwsCodeBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}}}]},{"allOf":[{"type":"object","required":["status","projectId","location","buildConfigId","environmentVariableCount"],"properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"GcpCloudBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}}}]},{"allOf":[{"type":"object","required":["status","managedEnvironmentId","resourceGroupName","environmentVariableCount"],"properties":{"environmentVariableCount":{"type":"integer","format":"int32","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":["string","null"]},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"}},"x-readme-ref-name":"AzureContainerAppsBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureContainerApps"]}}}]},{"allOf":[{"type":"object","required":["status","jobName","namespace","conditionCount","events"],"properties":{"active":{"type":["integer","null"],"format":"int32"},"completionTime":{"type":["string","null"],"format":"date-time"},"conditionCount":{"type":"integer","format":"int32","minimum":0},"events":{"type":"array","items":{"type":"object","required":["reason","message"],"properties":{"count":{"type":["integer","null"],"format":"int32"},"eventTime":{"type":["string","null"],"format":"date-time"},"firstTimestamp":{"type":["string","null"],"format":"date-time"},"involvedObject":{"oneOf":[{"type":"null"},{"type":"object","properties":{"apiVersion":{"type":["string","null"]},"fieldPath":{"type":["string","null"]},"kind":{"type":["string","null"]},"name":{"type":["string","null"]},"namespace":{"type":["string","null"]},"resourceVersion":{"type":["string","null"]},"uid":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventInvolvedObject"}]},"lastTimestamp":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"type":"null"},{"x-readme-ref-name":"Value"}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"null"},{"type":"object","properties":{"component":{"type":["string","null"]},"host":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSource"}]},"type":{"type":["string","null"]}},"x-readme-ref-name":"KubernetesEventSnapshot"}},"failed":{"type":["integer","null"],"format":"int32"},"imageDigest":{"type":["string","null"]},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":["string","null"],"format":"date-time"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"BuildHeartbeatStatus"},"succeeded":{"type":["integer","null"],"format":"int32"}},"x-readme-ref-name":"KubernetesBuildHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesJob"]}}}]}],"x-readme-ref-name":"BuildHeartbeatData"},"resourceType":{"type":"string","enum":["build"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","projectId","serviceName","enabled"],"properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":["string","null"]},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":["string","null"]},"state":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"},"title":{"type":["string","null"]}},"x-readme-ref-name":"GcpServiceUsageActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}}}]},{"allOf":[{"type":"object","required":["status","namespace","resourceTypeCount","registered"],"properties":{"namespace":{"type":"string"},"providerId":{"type":["string","null"]},"registered":{"type":"boolean"},"registrationPolicy":{"type":["string","null"]},"registrationState":{"type":["string","null"]},"resourceTypeCount":{"type":"integer","format":"int32","minimum":0},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"ServiceActivationHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceProviderActivationHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}}}]}],"x-readme-ref-name":"ServiceActivationHeartbeatData"},"resourceType":{"type":"string","enum":["service_activation"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","managedTags"],"properties":{"location":{"type":["string","null"]},"managedTags":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatStatus"}},"x-readme-ref-name":"AzureResourceGroupHeartbeatData"},"resourceType":{"type":"string","enum":["azure_resource_group"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","primaryEndpoints","secondaryEndpoints"],"properties":{"allowBlobPublicAccess":{"type":["boolean","null"]},"allowSharedKeyAccess":{"type":["boolean","null"]},"encryptionKeySource":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"networkBypass":{"type":["string","null"]},"networkDefaultAction":{"type":["string","null"]},"networkIpRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkResourceAccessRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"networkVirtualNetworkRuleCount":{"type":["integer","null"],"format":"int32","minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"requireInfrastructureEncryption":{"type":["boolean","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":["string","null"]},"dfs":{"type":["string","null"]},"file":{"type":["string","null"]},"queue":{"type":["string","null"]},"table":{"type":["string","null"]},"web":{"type":["string","null"]}},"x-readme-ref-name":"AzureStorageAccountEndpoints"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"StorageHeartbeatStatus"},"supportsHttpsTrafficOnly":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureStorageAccountHeartbeatData"},"resourceType":{"type":"string","enum":["azure_storage_account"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","workloadProfileCount","workloadProfiles"],"properties":{"customDomainVerificationId":{"type":["string","null"]},"defaultDomain":{"type":["string","null"]},"eventStreamEndpoint":{"type":["string","null"]},"infrastructureResourceGroup":{"type":["string","null"]},"kind":{"type":["string","null"]},"location":{"type":["string","null"]},"name":{"type":"string"},"provisioningState":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"staticIp":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatStatus"},"workloadProfileCount":{"type":"integer","format":"int32","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","required":["name","workloadProfileType"],"properties":{"maximumCount":{"type":["integer","null"],"format":"int32"},"minimumCount":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"x-readme-ref-name":"AzureContainerAppsEnvironmentWorkloadProfile"}},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureContainerAppsEnvironmentHeartbeatData"},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"type":"object","required":["status","name","privateEndpointConnectionCount"],"properties":{"createdAt":{"type":["string","null"]},"disableLocalAuth":{"type":["boolean","null"]},"location":{"type":["string","null"]},"metricId":{"type":["string","null"]},"minimumTlsVersion":{"type":["string","null"]},"name":{"type":"string"},"namespaceStatus":{"type":["string","null"]},"premiumMessagingPartitions":{"type":["integer","null"],"format":"int32"},"privateEndpointConnectionCount":{"type":"integer","format":"int32","minimum":0},"provisioningState":{"type":["string","null"]},"publicNetworkAccess":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"serviceBusEndpoint":{"type":["string","null"]},"skuCapacity":{"type":["integer","null"],"format":"int32"},"skuName":{"type":["string","null"]},"skuTier":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"QueueHeartbeatStatus"},"updatedAt":{"type":["string","null"]},"zoneRedundant":{"type":["boolean","null"]}},"x-readme-ref-name":"AzureServiceBusNamespaceHeartbeatData"},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","required":["status","region"],"properties":{"region":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AwsBedrockAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsBedrock"]}}}]},{"allOf":[{"type":"object","required":["status","project","location"],"properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"GcpVertexAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVertex"]}}}]},{"allOf":[{"type":"object","required":["status","accountName"],"properties":{"accountName":{"type":"string"},"endpoint":{"type":["string","null"]},"location":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"AzureFoundryAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureFoundry"]}}}]},{"allOf":[{"type":"object","required":["status","provider"],"properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"AiHeartbeatStatus"}},"x-readme-ref-name":"ExternalAiHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["external"]}}}]}],"x-readme-ref-name":"AiHeartbeatData"},"resourceType":{"type":"string","enum":["ai"]}}},{"type":"object","required":["data","resourceType"],"properties":{"data":{"oneOf":[{"allOf":[{"type":"object","description":"AWS: MicroVMs started from one image, counted across every version.","required":["status","imageIdentifier","activeSessions","versionsWithSessions"],"properties":{"activeSessions":{"type":"integer","format":"int32","description":"Sessions running now. Counted across all image versions, because a rolled version stays a\nscope until its own MicroVMs are gone.","minimum":0},"imageIdentifier":{"type":"string","description":"Image the sessions belong to."},"imageState":{"type":["string","null"],"description":"The image's own lifecycle state, which is where AWS surfaces base-image deprecation."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"},"versionsWithSessions":{"type":"integer","format":"int32","description":"Image versions still carrying sessions.","minimum":0}},"x-readme-ref-name":"AwsMicrovmSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsMicrovm"]}}}]},{"allOf":[{"type":"object","description":"Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here.","required":["status","sandboxGroup"],"properties":{"provisioningState":{"type":["string","null"]},"sandboxGroup":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"AzureSandboxGroupHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureSandboxGroup"]}}}]},{"allOf":[{"type":"object","description":"Kubernetes: pods carrying the sandbox label, in the deployment's namespace.","required":["status","namespace","activeSessions","idlePods"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"idlePods":{"type":"integer","format":"int32","description":"Claimed but unused pods waiting in the pool.","minimum":0},"namespace":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesPods"]}}}]},{"allOf":[{"type":"object","description":"Local: containers Docker still holds for this sandbox.","required":["status","activeSessions","routeServing"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"routeServing":{"type":"boolean","description":"Whether the loopback route is serving in this process. False after a manager restart until\nthe next tick rebinds it."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"LocalSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"description":"Content-free telemetry about a sandbox's sessions.\n\nNever anything from inside a session. A controller reaches only the cloud's management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it.","x-readme-ref-name":"SandboxHeartbeatData"},"resourceType":{"type":"string","enum":["sandbox"]}}}],"x-readme-ref-name":"ResourceHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandbox.json b/packages/core/src/generated/schemas/sandbox.json new file mode 100644 index 000000000..d328ec694 --- /dev/null +++ b/packages/core/src/generated/schemas/sandbox.json @@ -0,0 +1 @@ +{"type":"object","description":"An isolated environment for running untrusted code, created per session at runtime.","required":["id","code","egress","session"],"properties":{"code":{"description":"Where the sandbox's root filesystem comes from","oneOf":[{"type":"object","description":"A prebuilt container image used as the sandbox root filesystem.","required":["image","type"],"properties":{"image":{"type":"string","description":"Image reference (e.g. `ubuntu:24.04`, `ghcr.io/myorg/sandbox:latest`)"},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source built into a sandbox image at deploy time.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"SandboxCode"},"egress":{"description":"Outbound network policy","oneOf":[{"type":"object","description":"No outbound network access.","required":["mode"],"properties":{"mode":{"type":"string","enum":["deny"]}}},{"type":"object","description":"Unrestricted outbound access to the public internet, but never to private ranges,\nlink-local addresses, or the deployment's own network.","required":["mode"],"properties":{"mode":{"type":"string","enum":["allow"]}}},{"type":"object","description":"Outbound access only to the listed hostnames. No backend expresses this yet.","required":["domains","mode"],"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Hostnames the sandbox may reach"},"mode":{"type":"string","enum":["allowDomains"]}}}],"x-readme-ref-name":"SandboxEgress"},"id":{"type":"string","description":"Identifier for the sandbox. Must contain only alphanumeric characters, hyphens, and\nunderscores ([A-Za-z0-9-_]). Maximum 64 characters."},"limits":{"oneOf":[{"type":"null"},{"description":"Enforced resource ceilings.\n\nOptional because not every platform can enforce them, and a declaration that names none\ntakes the platform's own defaults. Naming them on a platform that cannot enforce them is\nrejected at plan time rather than silently ignored.","type":"object","required":["cpu","memory","disk"],"properties":{"cpu":{"type":"string","description":"CPU ceiling in cores or millicores (e.g. `\"1\"`, `\"500m\"`)"},"disk":{"type":"string","description":"Disk ceiling (e.g. `\"20Gi\"`)"},"maxProcesses":{"type":["integer","null"],"format":"int32","description":"Maximum number of processes, which bounds fork bombs.\n\nOptional because only a container runtime has the primitive: Kubernetes sets a pid ceiling\nper node, not per pod, and neither AWS MicroVMs nor Azure sandboxes expose one. Declaring\nit on a platform that cannot apply it is refused at plan time.","minimum":0},"memory":{"type":"string","description":"Memory ceiling (e.g. `\"2Gi\"`, `\"512Mi\"`)"}},"additionalProperties":false,"x-readme-ref-name":"SandboxLimits"}]},"previewPorts":{"type":"array","items":{"type":"integer","format":"int32","minimum":0},"description":"Ports eligible for a preview capability. A port not listed here can never be exposed,\nso an application cannot widen its own ingress at runtime."},"session":{"description":"Session lifetime and idle behaviour","type":"object","properties":{"idleSuspendSeconds":{"type":["integer","null"],"format":"int32","description":"Idle period after which the session is suspended, where the platform supports it","minimum":0},"maxLifetimeSeconds":{"type":["integer","null"],"format":"int32","description":"Wall-clock ceiling on a single session, after which the platform terminates it.\n\nOptional because only Kubernetes has the primitive (`activeDeadlineSeconds`). AWS takes an\nidle policy rather than a deadline, and neither Azure nor Local expose one, so declaring a\nceiling there is refused at plan time rather than accepted and never applied.","minimum":0}},"additionalProperties":false,"x-readme-ref-name":"SandboxSessionPolicy"}},"additionalProperties":false,"x-readme-ref-name":"Sandbox"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxCapabilities.json b/packages/core/src/generated/schemas/sandboxCapabilities.json new file mode 100644 index 000000000..8acb26ef4 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxCapabilities.json @@ -0,0 +1 @@ +{"type":"object","description":"What a platform's sandbox backend can actually do.\n\nPublished so portable code can branch before calling rather than discovering a gap through\nan error. Every field here corresponds to a capability that at least one platform lacks;\ncreate, exec, files and terminate are the guaranteed floor and are therefore not listed.","required":["reconnect","preview","suspendResume","snapshot","domainEgressRules","egressDeny","enforcedLimits","processLimit","sessionLifetime","supervisorPidNamespace"],"properties":{"domainEgressRules":{"type":"boolean","description":"Egress can be restricted to a hostname allowlist"},"egressDeny":{"type":"boolean","description":"Whether a declared `deny` is actually enforced, rather than accepted and dropped"},"enforcedLimits":{"type":"boolean","description":"The platform enforces the declared cpu, memory and disk ceilings"},"preview":{"type":"boolean","description":"An authenticated, port-scoped capability to reach a service inside the sandbox"},"processLimit":{"type":"boolean","description":"The platform can cap how many processes a session runs"},"reconnect":{"type":"boolean","description":"A later call can reach a session created by an earlier one"},"sessionLifetime":{"type":"boolean","description":"The platform terminates a session at a declared wall-clock deadline"},"snapshot":{"type":"boolean","description":"A session's full state can be captured and used to create another"},"supervisorPidNamespace":{"type":"boolean","description":"A command runs in its own PID namespace and cannot see or signal the agent's processes.\n\nOnly where an agent runs as root. Creating the namespace needs `CAP_SYS_ADMIN`, and the\nKubernetes sandbox pod drops every capability — which is also what denies `ptrace` by\nconstruction, so granting it there would remove a lock to add one."},"suspendResume":{"type":"boolean","description":"Session state can be suspended and resumed"}},"additionalProperties":false,"x-readme-ref-name":"SandboxCapabilities"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxCapability.json b/packages/core/src/generated/schemas/sandboxCapability.json new file mode 100644 index 000000000..474b399fd --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxCapability.json @@ -0,0 +1 @@ +{"type":"string","description":"Names a single sandbox capability, so an unsupported call can report which one it needed.","enum":["reconnect","preview","suspendResume","snapshot","domainEgressRules","egressDeny","enforcedLimits","processLimit","sessionLifetime","supervisorPidNamespace"],"x-readme-ref-name":"SandboxCapability"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxCode.json b/packages/core/src/generated/schemas/sandboxCode.json new file mode 100644 index 000000000..a91988b5c --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxCode.json @@ -0,0 +1 @@ +{"oneOf":[{"type":"object","description":"A prebuilt container image used as the sandbox root filesystem.","required":["image","type"],"properties":{"image":{"type":"string","description":"Image reference (e.g. `ubuntu:24.04`, `ghcr.io/myorg/sandbox:latest`)"},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source built into a sandbox image at deploy time.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"description":"Specifies where the sandbox's root filesystem comes from.","x-readme-ref-name":"SandboxCode"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxEgress.json b/packages/core/src/generated/schemas/sandboxEgress.json new file mode 100644 index 000000000..cf6330445 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxEgress.json @@ -0,0 +1 @@ +{"oneOf":[{"type":"object","description":"No outbound network access.","required":["mode"],"properties":{"mode":{"type":"string","enum":["deny"]}}},{"type":"object","description":"Unrestricted outbound access to the public internet, but never to private ranges,\nlink-local addresses, or the deployment's own network.","required":["mode"],"properties":{"mode":{"type":"string","enum":["allow"]}}},{"type":"object","description":"Outbound access only to the listed hostnames. No backend expresses this yet.","required":["domains","mode"],"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Hostnames the sandbox may reach"},"mode":{"type":"string","enum":["allowDomains"]}}}],"description":"Outbound network policy for a sandbox.","x-readme-ref-name":"SandboxEgress"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxHeartbeatData.json b/packages/core/src/generated/schemas/sandboxHeartbeatData.json new file mode 100644 index 000000000..ab6aa8ad6 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxHeartbeatData.json @@ -0,0 +1 @@ +{"oneOf":[{"allOf":[{"type":"object","description":"AWS: MicroVMs started from one image, counted across every version.","required":["status","imageIdentifier","activeSessions","versionsWithSessions"],"properties":{"activeSessions":{"type":"integer","format":"int32","description":"Sessions running now. Counted across all image versions, because a rolled version stays a\nscope until its own MicroVMs are gone.","minimum":0},"imageIdentifier":{"type":"string","description":"Image the sessions belong to."},"imageState":{"type":["string","null"],"description":"The image's own lifecycle state, which is where AWS surfaces base-image deprecation."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"},"versionsWithSessions":{"type":"integer","format":"int32","description":"Image versions still carrying sessions.","minimum":0}},"x-readme-ref-name":"AwsMicrovmSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsMicrovm"]}}}]},{"allOf":[{"type":"object","description":"Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here.","required":["status","sandboxGroup"],"properties":{"provisioningState":{"type":["string","null"]},"sandboxGroup":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"AzureSandboxGroupHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureSandboxGroup"]}}}]},{"allOf":[{"type":"object","description":"Kubernetes: pods carrying the sandbox label, in the deployment's namespace.","required":["status","namespace","activeSessions","idlePods"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"idlePods":{"type":"integer","format":"int32","description":"Claimed but unused pods waiting in the pool.","minimum":0},"namespace":{"type":"string"},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"KubernetesSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["kubernetesPods"]}}}]},{"allOf":[{"type":"object","description":"Local: containers Docker still holds for this sandbox.","required":["status","activeSessions","routeServing"],"properties":{"activeSessions":{"type":"integer","format":"int32","minimum":0},"routeServing":{"type":"boolean","description":"Whether the loopback route is serving in this process. False after a manager restart until\nthe next tick rebinds it."},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"}},"x-readme-ref-name":"LocalSandboxHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["local"]}}}]}],"description":"Content-free telemetry about a sandbox's sessions.\n\nNever anything from inside a session. A controller reaches only the cloud's management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it.","x-readme-ref-name":"SandboxHeartbeatData"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxHeartbeatStatus.json b/packages/core/src/generated/schemas/sandboxHeartbeatStatus.json new file mode 100644 index 000000000..d7f8fd725 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxHeartbeatStatus.json @@ -0,0 +1 @@ +{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"SandboxHeartbeatStatus"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxLimits.json b/packages/core/src/generated/schemas/sandboxLimits.json new file mode 100644 index 000000000..2b268e510 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxLimits.json @@ -0,0 +1 @@ +{"type":"object","description":"Hard ceilings enforced on a sandbox session.\n\nThese are limits, not scheduling requests. Untrusted code does not respect a hint, so every\nfield is enforced by the platform and a platform that cannot enforce one is rejected at plan\ntime rather than silently ignoring it.","required":["cpu","memory","disk"],"properties":{"cpu":{"type":"string","description":"CPU ceiling in cores or millicores (e.g. `\"1\"`, `\"500m\"`)"},"disk":{"type":"string","description":"Disk ceiling (e.g. `\"20Gi\"`)"},"maxProcesses":{"type":["integer","null"],"format":"int32","description":"Maximum number of processes, which bounds fork bombs.\n\nOptional because only a container runtime has the primitive: Kubernetes sets a pid ceiling\nper node, not per pod, and neither AWS MicroVMs nor Azure sandboxes expose one. Declaring\nit on a platform that cannot apply it is refused at plan time.","minimum":0},"memory":{"type":"string","description":"Memory ceiling (e.g. `\"2Gi\"`, `\"512Mi\"`)"}},"additionalProperties":false,"x-readme-ref-name":"SandboxLimits"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxOutputs.json b/packages/core/src/generated/schemas/sandboxOutputs.json new file mode 100644 index 000000000..adb524085 --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxOutputs.json @@ -0,0 +1 @@ +{"type":"object","description":"Outputs generated by a successfully provisioned Sandbox parent.","required":["parentName"],"properties":{"endpoint":{"type":["string","null"],"description":"Data-plane endpoint sessions are created through, where the platform has one"},"identifier":{"type":["string","null"],"description":"Platform-specific identifier for the parent (image ARN, sandbox group id, namespace)"},"parentName":{"type":"string","description":"Name of the durable parent that sessions are created inside"}},"x-readme-ref-name":"SandboxOutputs"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/sandboxSessionPolicy.json b/packages/core/src/generated/schemas/sandboxSessionPolicy.json new file mode 100644 index 000000000..3f81ee7fa --- /dev/null +++ b/packages/core/src/generated/schemas/sandboxSessionPolicy.json @@ -0,0 +1 @@ +{"type":"object","description":"How long a session may live and when it is suspended.","properties":{"idleSuspendSeconds":{"type":["integer","null"],"format":"int32","description":"Idle period after which the session is suspended, where the platform supports it","minimum":0},"maxLifetimeSeconds":{"type":["integer","null"],"format":"int32","description":"Wall-clock ceiling on a single session, after which the platform terminates it.\n\nOptional because only Kubernetes has the primitive (`activeDeadlineSeconds`). AWS takes an\nidle policy rather than a deadline, and neither Azure nor Local expose one, so declaring a\nceiling there is refused at plan time rather than accepted and never applied.","minimum":0}},"additionalProperties":false,"x-readme-ref-name":"SandboxSessionPolicy"} \ No newline at end of file diff --git a/packages/core/src/generated/schemas/worker.json b/packages/core/src/generated/schemas/worker.json index 1009c8e71..fb7622f9f 100644 --- a/packages/core/src/generated/schemas/worker.json +++ b/packages/core/src/generated/schemas/worker.json @@ -1 +1 @@ -{"type":"object","description":"Represents a serverless worker that executes code in response to triggers or direct invocations.\nWorkers are the primary compute resource in serverless applications, designed to be stateless and ephemeral.","required":["id","links","triggers","permissions","code"],"properties":{"code":{"description":"Code for the worker, either a pre-built image or source code to be built.","oneOf":[{"type":"object","description":"Container image.","required":["image","type"],"properties":{"image":{"type":"string","description":"Container image (e.g., `ghcr.io/myorg/myimage:latest`)."},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source code to be built.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"WorkerCode"},"commandsEnabled":{"type":"boolean","description":"Whether the worker can receive remote commands via the Commands protocol.\nWhen enabled, the platform pushes commands into the Worker runtime,\nwhich executes registered handlers.","default":false},"concurrencyLimit":{"type":["integer","null"],"format":"int32","description":"Maximum number of concurrent executions allowed for the worker.\nNone means platform default applies.","minimum":0},"environment":{"type":"object","description":"Key-value pairs to set as environment variables for the worker.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"id":{"type":"string","description":"Identifier for the worker. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."},"links":{"type":"array","items":{"type":"object","description":"Reference to a resource by its stable id and resource type.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"description":"List of resource references this worker depends on."},"memoryMb":{"type":"integer","format":"int32","description":"Memory allocated to the worker in megabytes (MB).\nDefault: 512\n\nPlatform-specific constraints:\n- **AWS Lambda**: 128–10240 MB in 1 MB increments\n- **GCP Cloud Run**: 128–32768 MB\n- **Azure Container Apps**: fixed CPU/memory pairs — 512, 1024, 1536, 2048, 2560,\n 3072, 3584, 4096 MB. Values below 512 are automatically rounded up at deploy time.","default":512,"minimum":0},"permissions":{"type":"string","description":"Permission profile name that defines the permissions granted to this worker.\nThis references a profile defined in the stack's permission definitions."},"publicEndpoints":{"type":"array","items":{"type":"object","description":"Public endpoint configuration for Worker resources.","required":["name"],"properties":{"hostLabel":{"type":["string","null"],"description":"Optional DNS label override for generated endpoint hostnames."},"name":{"type":"string","description":"Endpoint name within the resource."},"wildcardSubdomains":{"type":"boolean","description":"Whether to route wildcard subdomains to this endpoint."}},"x-readme-ref-name":"WorkerPublicEndpoint"},"description":"Public endpoints exposed by this worker."},"readinessProbe":{"oneOf":[{"type":"null"},{"description":"Optional readiness probe configuration.\nOnly applicable for workers with Public ingress.\nWhen configured, the probe will be executed after provisioning/update to verify the worker is ready.","type":"object","properties":{"method":{"description":"HTTP method to use for the probe request.\nDefault: GET","type":"string","enum":["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],"x-readme-ref-name":"HttpMethod"},"path":{"type":"string","description":"Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\""}},"x-readme-ref-name":"ReadinessProbe"}]},"timeoutSeconds":{"type":"integer","format":"int32","description":"Maximum execution time for the worker in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 180","default":180,"maximum":3600,"minimum":1},"triggers":{"type":"array","items":{"oneOf":[{"type":"object","description":"Worker triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"description":"Reference to the queue resource","type":"object","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Worker triggered by storage events (object created, deleted, etc.)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"description":"Reference to the storage resource","type":"object","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Worker triggered on a schedule (cron expression)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling (standard 5-field unix cron)"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a worker execution.","x-readme-ref-name":"WorkerTrigger"},"description":"List of triggers that define what events automatically invoke this worker.\nIf empty, the worker is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the worker will be automatically invoked when any of the specified trigger conditions are met."}},"additionalProperties":false,"x-readme-ref-name":"Worker"} \ No newline at end of file +{"type":"object","description":"Represents a serverless worker that executes code in response to triggers or direct invocations.\nWorkers are the primary compute resource in serverless applications, designed to be stateless and ephemeral.","required":["id","links","triggers","permissions","code"],"properties":{"code":{"description":"Code for the worker, either a pre-built image or source code to be built.","oneOf":[{"type":"object","description":"Container image.","required":["image","type"],"properties":{"image":{"type":"string","description":"Container image (e.g., `ghcr.io/myorg/myimage:latest`)."},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source code to be built.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"WorkerCode"},"commandsEnabled":{"type":"boolean","description":"Whether the worker can receive remote commands via the Commands protocol.\nWhen enabled, the platform pushes commands into the Worker runtime,\nwhich executes registered handlers.","default":false},"concurrencyLimit":{"type":["integer","null"],"format":"int32","description":"Maximum number of concurrent executions allowed for the worker.\nNone means platform default applies.","minimum":0},"environment":{"type":"object","description":"Key-value pairs to set as environment variables for the worker.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"id":{"type":"string","description":"Identifier for the worker. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."},"links":{"type":"array","items":{"type":"object","description":"Reference to a resource by its stable id and resource type.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"description":"List of resource references this worker depends on."},"memoryMb":{"type":"integer","format":"int32","description":"Memory allocated to the worker in megabytes (MB).\nDefault: 512\n\nPlatform-specific constraints:\n- **AWS Lambda**: 128–10240 MB in 1 MB increments\n- **GCP Cloud Run**: 128–32768 MB\n- **Azure Container Apps**: fixed CPU/memory pairs — 512, 1024, 1536, 2048, 2560,\n 3072, 3584, 4096 MB. Values below 512 are automatically rounded up at deploy time.","default":512,"minimum":0},"permissions":{"type":"string","description":"Permission profile name that defines the permissions granted to this worker.\nThis references a profile defined in the stack's permission definitions."},"publicEndpoints":{"type":"array","items":{"type":"object","description":"Public endpoint configuration for Worker resources.","required":["name"],"properties":{"hostLabel":{"type":["string","null"],"description":"Optional DNS label override for generated endpoint hostnames."},"name":{"type":"string","description":"Endpoint name within the resource."},"wildcardSubdomains":{"type":"boolean","description":"Whether to route wildcard subdomains to this endpoint."}},"x-readme-ref-name":"WorkerPublicEndpoint"},"description":"Public endpoints exposed by this worker."},"readinessProbe":{"oneOf":[{"type":"null"},{"description":"Optional readiness probe configuration.\nOnly applicable for workers with Public ingress.\nWhen configured, the probe will be executed after provisioning/update to verify the worker is ready.","type":"object","properties":{"method":{"description":"HTTP method to use for the probe request.\nDefault: GET","type":"string","enum":["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],"x-readme-ref-name":"HttpMethod"},"path":{"type":"string","description":"Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\""}},"x-readme-ref-name":"ReadinessProbe"}]},"sandboxLauncher":{"type":"boolean","description":"Whether this worker hosts sandbox sessions.\n\nSet by preflight, not by an application: on GCP a sandbox is a subprocess of the Cloud Run\ninstance running the app, and the instance can only launch one if its container declares\nit. Declaring it by hand would be a permission the workload does not need."},"timeoutSeconds":{"type":"integer","format":"int32","description":"Maximum execution time for the worker in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 180","default":180,"maximum":3600,"minimum":1},"triggers":{"type":"array","items":{"oneOf":[{"type":"object","description":"Worker triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"description":"Reference to the queue resource","type":"object","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Worker triggered by storage events (object created, deleted, etc.)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"description":"Reference to the storage resource","type":"object","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Worker triggered on a schedule (cron expression)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling (standard 5-field unix cron)"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a worker execution.","x-readme-ref-name":"WorkerTrigger"},"description":"List of triggers that define what events automatically invoke this worker.\nIf empty, the worker is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the worker will be automatically invoked when any of the specified trigger conditions are met."}},"additionalProperties":false,"x-readme-ref-name":"Worker"} \ No newline at end of file diff --git a/packages/core/src/generated/zod/aws-microvm-sandbox-heartbeat-data-schema.ts b/packages/core/src/generated/zod/aws-microvm-sandbox-heartbeat-data-schema.ts new file mode 100644 index 000000000..680e3a53b --- /dev/null +++ b/packages/core/src/generated/zod/aws-microvm-sandbox-heartbeat-data-schema.ts @@ -0,0 +1,22 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { SandboxHeartbeatStatusSchema } from "./sandbox-heartbeat-status-schema.js"; + +/** + * @description AWS: MicroVMs started from one image, counted across every version. + */ +export const AwsMicrovmSandboxHeartbeatDataSchema = z.object({ + "activeSessions": z.int().min(0).describe("Sessions running now. Counted across all image versions, because a rolled version stays a\nscope until its own MicroVMs are gone."), +"imageIdentifier": z.string().describe("Image the sessions belong to."), +"imageState": z.string().describe("The image's own lifecycle state, which is where AWS surfaces base-image deprecation.").nullish(), +get "status"(){ + return SandboxHeartbeatStatusSchema + }, +"versionsWithSessions": z.int().min(0).describe("Image versions still carrying sessions.") + }).describe("AWS: MicroVMs started from one image, counted across every version.") + +export type AwsMicrovmSandboxHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/azure-sandbox-group-heartbeat-data-schema.ts b/packages/core/src/generated/zod/azure-sandbox-group-heartbeat-data-schema.ts new file mode 100644 index 000000000..e7af97960 --- /dev/null +++ b/packages/core/src/generated/zod/azure-sandbox-group-heartbeat-data-schema.ts @@ -0,0 +1,20 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { SandboxHeartbeatStatusSchema } from "./sandbox-heartbeat-status-schema.js"; + +/** + * @description Azure: the sandbox group\'s ARM state. The data plane has no list operation, so a session count\nis not available here. + */ +export const AzureSandboxGroupHeartbeatDataSchema = z.object({ + "provisioningState": z.string().nullish(), +"sandboxGroup": z.string(), +get "status"(){ + return SandboxHeartbeatStatusSchema + } + }).describe("Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here.") + +export type AzureSandboxGroupHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/index.ts b/packages/core/src/generated/zod/index.ts index 625adf3c7..b68351442 100644 --- a/packages/core/src/generated/zod/index.ts +++ b/packages/core/src/generated/zod/index.ts @@ -31,6 +31,7 @@ export type { AwsIamRoleServiceAccountHeartbeatData } from "./aws-iam-role-servi export type { AwsKvImportData } from "./aws-kv-import-data-schema.js"; export type { AwsLambdaWorkerHeartbeatData } from "./aws-lambda-worker-heartbeat-data-schema.js"; export type { AwsManagementConfig } from "./aws-management-config-schema.js"; +export type { AwsMicrovmSandboxHeartbeatData } from "./aws-microvm-sandbox-heartbeat-data-schema.js"; export type { AwsNetworkImportData } from "./aws-network-import-data-schema.js"; export type { AwsOpenSearchCapacityRange } from "./aws-open-search-capacity-range-schema.js"; export type { AwsOpenSearchCapacity } from "./aws-open-search-capacity-schema.js"; @@ -84,6 +85,7 @@ export type { AzureResourceGroupHeartbeatData } from "./azure-resource-group-hea export type { AzureResourceGroupHeartbeatStatus } from "./azure-resource-group-heartbeat-status-schema.js"; export type { AzureResourceGroupImportData } from "./azure-resource-group-import-data-schema.js"; export type { AzureResourceProviderActivationHeartbeatData } from "./azure-resource-provider-activation-heartbeat-data-schema.js"; +export type { AzureSandboxGroupHeartbeatData } from "./azure-sandbox-group-heartbeat-data-schema.js"; export type { AzureServiceAccountImportData } from "./azure-service-account-import-data-schema.js"; export type { AzureServiceActivationImportData } from "./azure-service-activation-import-data-schema.js"; export type { AzureServiceBusNamespaceHeartbeatData } from "./azure-service-bus-namespace-heartbeat-data-schema.js"; @@ -235,6 +237,7 @@ export type { KubernetesOwnerReference } from "./kubernetes-owner-reference-sche export type { KubernetesPodRuntimeUnitStatus } from "./kubernetes-pod-runtime-unit-status-schema.js"; export type { KubernetesRouteProfile } from "./kubernetes-route-profile-schema.js"; export type { KubernetesRouteProviderOptions } from "./kubernetes-route-provider-options-schema.js"; +export type { KubernetesSandboxHeartbeatData } from "./kubernetes-sandbox-heartbeat-data-schema.js"; export type { KubernetesSecretVaultHeartbeatData } from "./kubernetes-secret-vault-heartbeat-data-schema.js"; export type { KubernetesSettings } from "./kubernetes-settings-schema.js"; export type { KubernetesTlsSecretRef } from "./kubernetes-tls-secret-ref-schema.js"; @@ -263,6 +266,7 @@ export type { LocalRuntimeEventSnapshot } from "./local-runtime-event-snapshot-s export type { LocalRuntimeEventSubject } from "./local-runtime-event-subject-schema.js"; export type { LocalRuntimeUnitKind } from "./local-runtime-unit-kind-schema.js"; export type { LocalRuntimeUnitStatus } from "./local-runtime-unit-status-schema.js"; +export type { LocalSandboxHeartbeatData } from "./local-sandbox-heartbeat-data-schema.js"; export type { LocalServiceAccountHeartbeatData } from "./local-service-account-heartbeat-data-schema.js"; export type { LocalStorageHeartbeatData } from "./local-storage-heartbeat-data-schema.js"; export type { LocalVaultHeartbeatData } from "./local-vault-heartbeat-data-schema.js"; @@ -336,6 +340,16 @@ export type { ResourceSpec } from "./resource-spec-schema.js"; export type { ResourceStatus } from "./resource-status-schema.js"; export type { ResourceType } from "./resource-type-schema.js"; export type { ResponseHandling } from "./response-handling-schema.js"; +export type { SandboxCapabilities } from "./sandbox-capabilities-schema.js"; +export type { SandboxCapability } from "./sandbox-capability-schema.js"; +export type { SandboxCode } from "./sandbox-code-schema.js"; +export type { SandboxEgress } from "./sandbox-egress-schema.js"; +export type { SandboxHeartbeatData } from "./sandbox-heartbeat-data-schema.js"; +export type { SandboxHeartbeatStatus } from "./sandbox-heartbeat-status-schema.js"; +export type { SandboxLimits } from "./sandbox-limits-schema.js"; +export type { SandboxOutputs } from "./sandbox-outputs-schema.js"; +export type { Sandbox } from "./sandbox-schema.js"; +export type { SandboxSessionPolicy } from "./sandbox-session-policy-schema.js"; export type { ScheduledEvent } from "./scheduled-event-schema.js"; export type { ServiceAccountHeartbeatData } from "./service-account-heartbeat-data-schema.js"; export type { ServiceAccountHeartbeatStatus } from "./service-account-heartbeat-status-schema.js"; @@ -419,6 +433,7 @@ export { AwsIamRoleServiceAccountHeartbeatDataSchema } from "./aws-iam-role-serv export { AwsKvImportDataSchema } from "./aws-kv-import-data-schema.js"; export { AwsLambdaWorkerHeartbeatDataSchema } from "./aws-lambda-worker-heartbeat-data-schema.js"; export { AwsManagementConfigSchema } from "./aws-management-config-schema.js"; +export { AwsMicrovmSandboxHeartbeatDataSchema } from "./aws-microvm-sandbox-heartbeat-data-schema.js"; export { AwsNetworkImportDataSchema } from "./aws-network-import-data-schema.js"; export { AwsOpenSearchCapacityRangeSchema } from "./aws-open-search-capacity-range-schema.js"; export { AwsOpenSearchCapacitySchema } from "./aws-open-search-capacity-schema.js"; @@ -472,6 +487,7 @@ export { AzureResourceGroupHeartbeatDataSchema } from "./azure-resource-group-he export { AzureResourceGroupHeartbeatStatusSchema } from "./azure-resource-group-heartbeat-status-schema.js"; export { AzureResourceGroupImportDataSchema } from "./azure-resource-group-import-data-schema.js"; export { AzureResourceProviderActivationHeartbeatDataSchema } from "./azure-resource-provider-activation-heartbeat-data-schema.js"; +export { AzureSandboxGroupHeartbeatDataSchema } from "./azure-sandbox-group-heartbeat-data-schema.js"; export { AzureServiceAccountImportDataSchema } from "./azure-service-account-import-data-schema.js"; export { AzureServiceActivationImportDataSchema } from "./azure-service-activation-import-data-schema.js"; export { AzureServiceBusNamespaceHeartbeatDataSchema } from "./azure-service-bus-namespace-heartbeat-data-schema.js"; @@ -623,6 +639,7 @@ export { KubernetesOwnerReferenceSchema } from "./kubernetes-owner-reference-sch export { KubernetesPodRuntimeUnitStatusSchema } from "./kubernetes-pod-runtime-unit-status-schema.js"; export { KubernetesRouteProfileSchema } from "./kubernetes-route-profile-schema.js"; export { KubernetesRouteProviderOptionsSchema } from "./kubernetes-route-provider-options-schema.js"; +export { KubernetesSandboxHeartbeatDataSchema } from "./kubernetes-sandbox-heartbeat-data-schema.js"; export { KubernetesSecretVaultHeartbeatDataSchema } from "./kubernetes-secret-vault-heartbeat-data-schema.js"; export { KubernetesSettingsSchema } from "./kubernetes-settings-schema.js"; export { KubernetesTlsSecretRefSchema } from "./kubernetes-tls-secret-ref-schema.js"; @@ -651,6 +668,7 @@ export { LocalRuntimeEventSnapshotSchema } from "./local-runtime-event-snapshot- export { LocalRuntimeEventSubjectSchema } from "./local-runtime-event-subject-schema.js"; export { LocalRuntimeUnitKindSchema } from "./local-runtime-unit-kind-schema.js"; export { LocalRuntimeUnitStatusSchema } from "./local-runtime-unit-status-schema.js"; +export { LocalSandboxHeartbeatDataSchema } from "./local-sandbox-heartbeat-data-schema.js"; export { LocalServiceAccountHeartbeatDataSchema } from "./local-service-account-heartbeat-data-schema.js"; export { LocalStorageHeartbeatDataSchema } from "./local-storage-heartbeat-data-schema.js"; export { LocalVaultHeartbeatDataSchema } from "./local-vault-heartbeat-data-schema.js"; @@ -724,6 +742,16 @@ export { ResourceSpecSchema } from "./resource-spec-schema.js"; export { ResourceStatusSchema } from "./resource-status-schema.js"; export { ResourceTypeSchema } from "./resource-type-schema.js"; export { ResponseHandlingSchema } from "./response-handling-schema.js"; +export { SandboxCapabilitiesSchema } from "./sandbox-capabilities-schema.js"; +export { SandboxCapabilitySchema } from "./sandbox-capability-schema.js"; +export { SandboxCodeSchema } from "./sandbox-code-schema.js"; +export { SandboxEgressSchema } from "./sandbox-egress-schema.js"; +export { SandboxHeartbeatDataSchema } from "./sandbox-heartbeat-data-schema.js"; +export { SandboxHeartbeatStatusSchema } from "./sandbox-heartbeat-status-schema.js"; +export { SandboxLimitsSchema } from "./sandbox-limits-schema.js"; +export { SandboxOutputsSchema } from "./sandbox-outputs-schema.js"; +export { SandboxSchema } from "./sandbox-schema.js"; +export { SandboxSessionPolicySchema } from "./sandbox-session-policy-schema.js"; export { ScheduledEventSchema } from "./scheduled-event-schema.js"; export { ServiceAccountHeartbeatDataSchema } from "./service-account-heartbeat-data-schema.js"; export { ServiceAccountHeartbeatStatusSchema } from "./service-account-heartbeat-status-schema.js"; diff --git a/packages/core/src/generated/zod/kubernetes-sandbox-heartbeat-data-schema.ts b/packages/core/src/generated/zod/kubernetes-sandbox-heartbeat-data-schema.ts new file mode 100644 index 000000000..dbe210993 --- /dev/null +++ b/packages/core/src/generated/zod/kubernetes-sandbox-heartbeat-data-schema.ts @@ -0,0 +1,21 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { SandboxHeartbeatStatusSchema } from "./sandbox-heartbeat-status-schema.js"; + +/** + * @description Kubernetes: pods carrying the sandbox label, in the deployment\'s namespace. + */ +export const KubernetesSandboxHeartbeatDataSchema = z.object({ + "activeSessions": z.int().min(0), +"idlePods": z.int().min(0).describe("Claimed but unused pods waiting in the pool."), +"namespace": z.string(), +get "status"(){ + return SandboxHeartbeatStatusSchema + } + }).describe("Kubernetes: pods carrying the sandbox label, in the deployment's namespace.") + +export type KubernetesSandboxHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/local-sandbox-heartbeat-data-schema.ts b/packages/core/src/generated/zod/local-sandbox-heartbeat-data-schema.ts new file mode 100644 index 000000000..c2a91a74f --- /dev/null +++ b/packages/core/src/generated/zod/local-sandbox-heartbeat-data-schema.ts @@ -0,0 +1,20 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { SandboxHeartbeatStatusSchema } from "./sandbox-heartbeat-status-schema.js"; + +/** + * @description Local: containers Docker still holds for this sandbox. + */ +export const LocalSandboxHeartbeatDataSchema = z.object({ + "activeSessions": z.int().min(0), +"routeServing": z.boolean().describe("Whether the loopback route is serving in this process. False after a manager restart until\nthe next tick rebinds it."), +get "status"(){ + return SandboxHeartbeatStatusSchema + } + }).describe("Local: containers Docker still holds for this sandbox.") + +export type LocalSandboxHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/resource-heartbeat-data-schema.ts b/packages/core/src/generated/zod/resource-heartbeat-data-schema.ts index af19316e6..a7b392bba 100644 --- a/packages/core/src/generated/zod/resource-heartbeat-data-schema.ts +++ b/packages/core/src/generated/zod/resource-heartbeat-data-schema.ts @@ -20,6 +20,7 @@ import { NetworkHeartbeatDataSchema } from "./network-heartbeat-data-schema.js"; import { PostgresHeartbeatDataSchema } from "./postgres-heartbeat-data-schema.js"; import { QueueHeartbeatDataSchema } from "./queue-heartbeat-data-schema.js"; import { RemoteStackManagementHeartbeatDataSchema } from "./remote-stack-management-heartbeat-data-schema.js"; +import { SandboxHeartbeatDataSchema } from "./sandbox-heartbeat-data-schema.js"; import { ServiceAccountHeartbeatDataSchema } from "./service-account-heartbeat-data-schema.js"; import { ServiceActivationHeartbeatDataSchema } from "./service-activation-heartbeat-data-schema.js"; import { StorageHeartbeatDataSchema } from "./storage-heartbeat-data-schema.js"; @@ -131,6 +132,11 @@ export const ResourceHeartbeatDataSchema = z.union([z.object({ return AiHeartbeatDataSchema }, "resourceType": z.enum(["ai"]) + }), z.object({ + get "data"(){ + return SandboxHeartbeatDataSchema.describe("Content-free telemetry about a sandbox's sessions.\n\nNever anything from inside a session. A controller reaches only the cloud's management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it.") + }, +"resourceType": z.enum(["sandbox"]) })]) export type ResourceHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-capabilities-schema.ts b/packages/core/src/generated/zod/sandbox-capabilities-schema.ts new file mode 100644 index 000000000..e4614508f --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-capabilities-schema.ts @@ -0,0 +1,24 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description What a platform\'s sandbox backend can actually do.\n\nPublished so portable code can branch before calling rather than discovering a gap through\nan error. Every field here corresponds to a capability that at least one platform lacks;\ncreate, exec, files and terminate are the guaranteed floor and are therefore not listed. + */ +export const SandboxCapabilitiesSchema = z.object({ + "domainEgressRules": z.boolean().describe("Egress can be restricted to a hostname allowlist"), +"egressDeny": z.boolean().describe("Whether a declared `deny` is actually enforced, rather than accepted and dropped"), +"enforcedLimits": z.boolean().describe("The platform enforces the declared cpu, memory and disk ceilings"), +"preview": z.boolean().describe("An authenticated, port-scoped capability to reach a service inside the sandbox"), +"processLimit": z.boolean().describe("The platform can cap how many processes a session runs"), +"reconnect": z.boolean().describe("A later call can reach a session created by an earlier one"), +"sessionLifetime": z.boolean().describe("The platform terminates a session at a declared wall-clock deadline"), +"snapshot": z.boolean().describe("A session's full state can be captured and used to create another"), +"supervisorPidNamespace": z.boolean().describe("A command runs in its own PID namespace and cannot see or signal the agent's processes.\n\nOnly where an agent runs as root. Creating the namespace needs `CAP_SYS_ADMIN`, and the\nKubernetes sandbox pod drops every capability — which is also what denies `ptrace` by\nconstruction, so granting it there would remove a lock to add one."), +"suspendResume": z.boolean().describe("Session state can be suspended and resumed") + }).describe("What a platform's sandbox backend can actually do.\n\nPublished so portable code can branch before calling rather than discovering a gap through\nan error. Every field here corresponds to a capability that at least one platform lacks;\ncreate, exec, files and terminate are the guaranteed floor and are therefore not listed.") + +export type SandboxCapabilities = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-capability-schema.ts b/packages/core/src/generated/zod/sandbox-capability-schema.ts new file mode 100644 index 000000000..afd590f27 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-capability-schema.ts @@ -0,0 +1,13 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description Names a single sandbox capability, so an unsupported call can report which one it needed. + */ +export const SandboxCapabilitySchema = z.enum(["reconnect", "preview", "suspendResume", "snapshot", "domainEgressRules", "egressDeny", "enforcedLimits", "processLimit", "sessionLifetime", "supervisorPidNamespace"]).describe("Names a single sandbox capability, so an unsupported call can report which one it needed.") + +export type SandboxCapability = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-code-schema.ts b/packages/core/src/generated/zod/sandbox-code-schema.ts new file mode 100644 index 000000000..5a9743b23 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-code-schema.ts @@ -0,0 +1,23 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { ToolchainConfigSchema } from "./toolchain-config-schema.js"; + +/** + * @description Specifies where the sandbox\'s root filesystem comes from. + */ +export const SandboxCodeSchema = z.union([z.object({ + "image": z.string().describe("Image reference (e.g. `ubuntu:24.04`, `ghcr.io/myorg/sandbox:latest`)"), +"type": z.enum(["image"]) + }), z.object({ + "src": z.string().describe("The source directory to build from"), +get "toolchain"(){ + return ToolchainConfigSchema.describe("Configuration for different programming language toolchains.\nEach toolchain provides type-safe build configuration and auto-detection capabilities.") + }, +"type": z.enum(["source"]) + })]).describe("Specifies where the sandbox's root filesystem comes from.") + +export type SandboxCode = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-egress-schema.ts b/packages/core/src/generated/zod/sandbox-egress-schema.ts new file mode 100644 index 000000000..09ca47568 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-egress-schema.ts @@ -0,0 +1,20 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description Outbound network policy for a sandbox. + */ +export const SandboxEgressSchema = z.union([z.object({ + "mode": z.enum(["deny"]) + }), z.object({ + "mode": z.enum(["allow"]) + }), z.object({ + "domains": z.array(z.string()).describe("Hostnames the sandbox may reach"), +"mode": z.enum(["allowDomains"]) + })]).describe("Outbound network policy for a sandbox.") + +export type SandboxEgress = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-heartbeat-data-schema.ts b/packages/core/src/generated/zod/sandbox-heartbeat-data-schema.ts new file mode 100644 index 000000000..cde2b6532 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-heartbeat-data-schema.ts @@ -0,0 +1,25 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { AwsMicrovmSandboxHeartbeatDataSchema } from "./aws-microvm-sandbox-heartbeat-data-schema.js"; +import { AzureSandboxGroupHeartbeatDataSchema } from "./azure-sandbox-group-heartbeat-data-schema.js"; +import { KubernetesSandboxHeartbeatDataSchema } from "./kubernetes-sandbox-heartbeat-data-schema.js"; +import { LocalSandboxHeartbeatDataSchema } from "./local-sandbox-heartbeat-data-schema.js"; + +/** + * @description Content-free telemetry about a sandbox\'s sessions.\n\nNever anything from inside a session. A controller reaches only the cloud\'s management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it. + */ +export const SandboxHeartbeatDataSchema = z.union([z.lazy(() => AwsMicrovmSandboxHeartbeatDataSchema).and(z.object({ + "backend": z.enum(["awsMicrovm"]) + })).describe("AWS: MicroVMs started from one image, counted across every version."), z.lazy(() => AzureSandboxGroupHeartbeatDataSchema).and(z.object({ + "backend": z.enum(["azureSandboxGroup"]) + })).describe("Azure: the sandbox group's ARM state. The data plane has no list operation, so a session count\nis not available here."), z.lazy(() => KubernetesSandboxHeartbeatDataSchema).and(z.object({ + "backend": z.enum(["kubernetesPods"]) + })).describe("Kubernetes: pods carrying the sandbox label, in the deployment's namespace."), z.lazy(() => LocalSandboxHeartbeatDataSchema).and(z.object({ + "backend": z.enum(["local"]) + })).describe("Local: containers Docker still holds for this sandbox.")]).describe("Content-free telemetry about a sandbox's sessions.\n\nNever anything from inside a session. A controller reaches only the cloud's management APIs,\nand the whole point of the resource is that the control plane cannot see what runs in it.") + +export type SandboxHeartbeatData = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-heartbeat-status-schema.ts b/packages/core/src/generated/zod/sandbox-heartbeat-status-schema.ts new file mode 100644 index 000000000..659d55182 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-heartbeat-status-schema.ts @@ -0,0 +1,26 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { HeartbeatCollectionIssueSchema } from "./heartbeat-collection-issue-schema.js"; +import { ObservedHealthSchema } from "./observed-health-schema.js"; +import { ProviderLifecycleStateSchema } from "./provider-lifecycle-state-schema.js"; + +export const SandboxHeartbeatStatusSchema = z.object({ + get "collectionIssues"(){ + return z.array(HeartbeatCollectionIssueSchema) + }, +get "health"(){ + return ObservedHealthSchema + }, +get "lifecycle"(){ + return ProviderLifecycleStateSchema + }, +"message": z.string().nullish(), +"partial": z.boolean(), +"stale": z.boolean() + }) + +export type SandboxHeartbeatStatus = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-limits-schema.ts b/packages/core/src/generated/zod/sandbox-limits-schema.ts new file mode 100644 index 000000000..e45056a37 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-limits-schema.ts @@ -0,0 +1,18 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description Hard ceilings enforced on a sandbox session.\n\nThese are limits, not scheduling requests. Untrusted code does not respect a hint, so every\nfield is enforced by the platform and a platform that cannot enforce one is rejected at plan\ntime rather than silently ignoring it. + */ +export const SandboxLimitsSchema = z.object({ + "cpu": z.string().describe("CPU ceiling in cores or millicores (e.g. `\"1\"`, `\"500m\"`)"), +"disk": z.string().describe("Disk ceiling (e.g. `\"20Gi\"`)"), +"maxProcesses": z.int().min(0).describe("Maximum number of processes, which bounds fork bombs.\n\nOptional because only a container runtime has the primitive: Kubernetes sets a pid ceiling\nper node, not per pod, and neither AWS MicroVMs nor Azure sandboxes expose one. Declaring\nit on a platform that cannot apply it is refused at plan time.").nullish(), +"memory": z.string().describe("Memory ceiling (e.g. `\"2Gi\"`, `\"512Mi\"`)") + }).describe("Hard ceilings enforced on a sandbox session.\n\nThese are limits, not scheduling requests. Untrusted code does not respect a hint, so every\nfield is enforced by the platform and a platform that cannot enforce one is rejected at plan\ntime rather than silently ignoring it.") + +export type SandboxLimits = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-outputs-schema.ts b/packages/core/src/generated/zod/sandbox-outputs-schema.ts new file mode 100644 index 000000000..33fd63dec --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-outputs-schema.ts @@ -0,0 +1,17 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description Outputs generated by a successfully provisioned Sandbox parent. + */ +export const SandboxOutputsSchema = z.object({ + "endpoint": z.string().describe("Data-plane endpoint sessions are created through, where the platform has one").nullish(), +"identifier": z.string().describe("Platform-specific identifier for the parent (image ARN, sandbox group id, namespace)").nullish(), +"parentName": z.string().describe("Name of the durable parent that sessions are created inside") + }).describe("Outputs generated by a successfully provisioned Sandbox parent.") + +export type SandboxOutputs = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-schema.ts b/packages/core/src/generated/zod/sandbox-schema.ts new file mode 100644 index 000000000..0b980ac59 --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-schema.ts @@ -0,0 +1,32 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; +import { SandboxCodeSchema } from "./sandbox-code-schema.js"; +import { SandboxEgressSchema } from "./sandbox-egress-schema.js"; +import { SandboxLimitsSchema } from "./sandbox-limits-schema.js"; +import { SandboxSessionPolicySchema } from "./sandbox-session-policy-schema.js"; + +/** + * @description An isolated environment for running untrusted code, created per session at runtime. + */ +export const SandboxSchema = z.object({ + get "code"(){ + return SandboxCodeSchema.describe("Specifies where the sandbox's root filesystem comes from.") + }, +get "egress"(){ + return SandboxEgressSchema.describe("Outbound network policy for a sandbox.") + }, +"id": z.string().describe("Identifier for the sandbox. Must contain only alphanumeric characters, hyphens, and\nunderscores ([A-Za-z0-9-_]). Maximum 64 characters."), +get "limits"(){ + return z.union([SandboxLimitsSchema, z.null()]).optional() + }, +"previewPorts": z.optional(z.array(z.int().min(0)).describe("Ports eligible for a preview capability. A port not listed here can never be exposed,\nso an application cannot widen its own ingress at runtime.")), +get "session"(){ + return SandboxSessionPolicySchema.describe("How long a session may live and when it is suspended.") + } + }).describe("An isolated environment for running untrusted code, created per session at runtime.") + +export type Sandbox = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/sandbox-session-policy-schema.ts b/packages/core/src/generated/zod/sandbox-session-policy-schema.ts new file mode 100644 index 000000000..e58c1598c --- /dev/null +++ b/packages/core/src/generated/zod/sandbox-session-policy-schema.ts @@ -0,0 +1,16 @@ +/** +* Generated by Kubb (https://kubb.dev/). +* Do not edit manually. +*/ + +import * as z from "zod"; + +/** + * @description How long a session may live and when it is suspended. + */ +export const SandboxSessionPolicySchema = z.object({ + "idleSuspendSeconds": z.int().min(0).describe("Idle period after which the session is suspended, where the platform supports it").nullish(), +"maxLifetimeSeconds": z.int().min(0).describe("Wall-clock ceiling on a single session, after which the platform terminates it.\n\nOptional because only Kubernetes has the primitive (`activeDeadlineSeconds`). AWS takes an\nidle policy rather than a deadline, and neither Azure nor Local expose one, so declaring a\nceiling there is refused at plan time rather than accepted and never applied.").nullish() + }).describe("How long a session may live and when it is suspended.") + +export type SandboxSessionPolicy = z.infer \ No newline at end of file diff --git a/packages/core/src/generated/zod/worker-schema.ts b/packages/core/src/generated/zod/worker-schema.ts index b0682fc0e..c094044b0 100644 --- a/packages/core/src/generated/zod/worker-schema.ts +++ b/packages/core/src/generated/zod/worker-schema.ts @@ -34,6 +34,7 @@ get "publicEndpoints"(){ get "readinessProbe"(){ return z.union([ReadinessProbeSchema, z.null()]).optional() }, +"sandboxLauncher": z.optional(z.boolean().describe("Whether this worker hosts sandbox sessions.\n\nSet by preflight, not by an application: on GCP a sandbox is a subprocess of the Cloud Run\ninstance running the app, and the instance can only launch one if its container declares\nit. Declaring it by hand would be a permission the workload does not need.")), "timeoutSeconds": z.optional(z.int().min(1).max(3600).default(180).describe("Maximum execution time for the worker in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 180")), get "triggers"(){ return z.array(WorkerTriggerSchema.describe("Defines what triggers a worker execution.")).describe("List of triggers that define what events automatically invoke this worker.\nIf empty, the worker is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the worker will be automatically invoked when any of the specified trigger conditions are met.") diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 6dce13bbb..4d7d3a9a8 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -17,6 +17,7 @@ export * from "./postgres.js" export * from "./queue.js" export type { ResourceType } from "./resource.js" export { Resource, ResourceTypeSchema } from "./resource.js" +export * from "./sandbox.js" export * from "./service-account.js" export * from "./stack.js" export * from "./storage.js" diff --git a/packages/core/src/sandbox.ts b/packages/core/src/sandbox.ts new file mode 100644 index 000000000..0d7c289c2 --- /dev/null +++ b/packages/core/src/sandbox.ts @@ -0,0 +1,119 @@ +import { + type ResourceType, + type SandboxCode, + type Sandbox as SandboxConfig, + type SandboxEgress, + type SandboxLimits, + SandboxSchema, + type SandboxSessionPolicy, +} from "./generated/index.js" +import { type Resource, ResourceBuilder } from "./resource.js" + +export type { + Sandbox as SandboxConfig, + SandboxCapabilities, + SandboxCode, + SandboxEgress, + SandboxLimits, + SandboxOutputs, + SandboxSessionPolicy, +} from "./generated/index.js" +export { SandboxSchema as SandboxConfigSchema } from "./generated/index.js" + +/** + * An isolated environment for running untrusted code. + * + * The declaration provisions a durable parent; individual sessions are created and destroyed + * at runtime through the binding. Backends differ: + * - AWS: Lambda MicroVMs on Firecracker, with an Alien agent inside the image + * - Azure: Container Apps Sandboxes, whose data plane implements the API natively + * - GCP: Cloud Run sandboxes launched inside the workload's own instance + * - Kubernetes: pods under a sandboxed runtime class (gVisor or Kata) + * - Local: Docker, which shares a kernel and is therefore development-only for untrusted code + * + * Capabilities are not uniform. Call `capabilities()` on the binding and branch, or handle the + * typed error — an unsupported capability never silently succeeds. Notably GCP cannot + * reconnect to a session (its sandbox id is scoped to one Cloud Run instance), and only Azure + * supports a hostname egress allowlist. + * + * Limits are enforced ceilings, not scheduling hints, and are validated when the stack is + * planned. A platform that cannot enforce them rejects the sandbox rather than ignoring them. + */ +export class Sandbox extends ResourceBuilder { + private _config: Partial = {} + + /** + * Creates a new Sandbox builder. + * @param id Identifier for the sandbox. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + constructor(id: string) { + super() + this._config.id = id + } + + /** + * Sets where the sandbox's root filesystem comes from. + */ + public code(code: SandboxCode): this { + this._config.code = code + return this + } + + /** + * Sets the enforced cpu, memory, disk and process ceilings. + */ + public limits(limits: SandboxLimits): this { + this._config.limits = limits + return this + } + + /** + * Sets the outbound network policy. + */ + public egress(egress: SandboxEgress): this { + this._config.egress = egress + return this + } + + /** + * Sets session lifetime and idle behaviour. + */ + public session(session: SandboxSessionPolicy): this { + this._config.session = session + return this + } + + /** + * Declares the ports eligible for a preview capability. + * + * A port not declared here can never be exposed, so an application cannot widen its own + * ingress at runtime. + */ + public previewPorts(ports: number[]): this { + this._config.previewPorts = ports + return this + } + + /** + * Returns a ResourceType representing any Sandbox resource. + * Used for creating permission targets that apply to all sandboxes. + * @returns The "sandbox" resource type. + */ + public static any(): ResourceType { + return "sandbox" + } + + /** + * Builds and validates the sandbox configuration. + * @returns An immutable Resource representing the configured sandbox. + * @throws Error if the sandbox configuration is invalid. + */ + public build(): Resource { + const config = SandboxSchema.parse(this._config) + + return this.resource({ + type: "sandbox", + ...config, + }) + } +}