import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* Use this data source to access information about an existing [Workload](https://docs.controlplane.com/reference/workload) within Control Plane.
*
* ## Required
*
* - **name** (String) Name of the workload.
* - **gvc** (String) Name of the GVC that the specified workload belongs to.
*
* ## Outputs
*
* The following attributes are exported:
*
* - **id** (String) The unique identifier for this workload.
* - **cpln_id** (String) The ID, in GUID format, of the workload.
* - **name** (String) Name of the workload.
* - **gvc** (String) Name of the associated GVC.
* - **type** (String) Workload type. Either `serverless`, `standard`, `stateful`, `cron`, or `vm`.
* - **description** (String) Description of the workload.
* - **tags** (Map of String) Key-value map of resource tags.
* - **self_link** (String) Full link to this resource. Can be referenced by other resources.
* - **identity_link** (String) Full link to the identity used as the access scope for 3rd party cloud resources.
* - **support_dynamic_tags** (Boolean) Indicates if Control Plane automatically redeploys when referenced container images are updated in the registry.
* - **extras** (String) Extra Kubernetes modifications. Only used for BYOK.
* - **container** (Block List) (see below).
* - **firewall_spec** (Block List, Max: 1) (see below).
* - **options** (Block List, Max: 1) (see below).
* - **local_options** (Block List) (see below).
* - **job** (Block List, Max: 1) (see below).
* - **sidecar** (Block List, Max: 1) (see below).
* - **rollout_options** (Block List, Max: 1) (see below).
* - **security_options** (Block List, Max: 1) (see below).
* - **load_balancer** (Block List, Max: 1) (see below).
* - **request_retry_policy** (Block List, Max: 1) (see below).
* - **vm** (Attributes) VM-only configuration. Present when `type` is `vm` (see below).
* - **health** (Attributes) Health summary of the workload (see below).
* - **status** (Block List) (see below).
*
*
*
* ### `container`
*
* > **Note** A workload always exposes at least one container definition.
*
* Read-Only:
*
* - **name** (String) Name of the container. Cannot be `istio-proxy`, `queue-proxy`, or `istio-validation`, and cannot start with `cpln_`.
* - **image** (String) The full image and tag path.
* - **working_directory** (String) Override for the container working directory. Must be an absolute path.
* - **port** (Number) The port the container exposes. Only one container can specify a port. Min: `80`. Max: `65535`. Used by the `serverless` workload type. **Deprecated – use `ports`.**
* - **memory** (String) Reserved memory when Capacity AI is disabled, or maximum memory when it is enabled. Default: `128Mi`.
* - **cpu** (String) Reserved CPU when Capacity AI is disabled, or maximum CPU when it is enabled. Default: `50m`.
* - **min_cpu** (String) Minimum CPU when Capacity AI is enabled.
* - **min_memory** (String) Minimum memory when Capacity AI is enabled.
* - **env** (Map of String) Environment variables exposed to the container.
* - **inherit_env** (Boolean) Indicates whether GVC environment variables are inherited. A variable in `env` overrides the same key from the GVC.
* - **command** (String) Override for the container entry point.
* - **args** (List of String) Command-line arguments passed to the container in order.
* - **metrics** (Block List, Max: 1) (see below).
* - **ports** (Block List) (see below).
* - **readiness_probe** (Block List, Max: 1) (see below).
* - **liveness_probe** (Block List, Max: 1) (see below).
* - **gpu_nvidia** (Block List, Max: 1) (see below).
* - **gpu_custom** (Block List, Max: 1) (see below).
* - **lifecycle** (Block List, Max: 1) (see below).
* - **volume** (Block List) (see below).
*
* > **Note** The following container ports are reserved and cannot be used: `8012`, `8022`, `9090`, `9091`, `15000`, `15001`, `15006`, `15020`, `15021`, `15090`, `41000`.
*
*
*
* ### `container.metrics`
*
* Read-Only:
*
* - **port** (Number) Port that exposes custom metrics.
* - **path** (String) Path where custom metrics are available.
* - **drop_metrics** (List of String) Patterns describing metrics to discard.
*
*
*
* ### `container.ports`
*
* Read-Only:
*
* - **protocol** (String) Protocol. One of `http`, `http2`, `tcp`, or `grpc`.
* - **number** (Number) Port that the container exposes.
*
*
*
* ### `container.readiness_probe`
*
* Read-Only:
*
* - **initial_delay_seconds** (Number) Initial delay before the probe runs. Default: `10`. Min: `0`. Max: `600`.
* - **period_seconds** (Number) Interval between probes. Default: `10`. Min: `1`. Max: `600`.
* - **timeout_seconds** (Number) Probe timeout. Default: `1`. Min: `1`. Max: `600`.
* - **success_threshold** (Number) Minimum consecutive successes to be considered ready. Default: `1`. Min: `1`. Max: `20`.
* - **failure_threshold** (Number) Consecutive failures before marking the container unhealthy. Default: `3`. Min: `1`. Max: `20`.
* - **exec** (Block List, Max: 1) (see below).
* - **grpc** (Block List, Max: 1) (see below).
* - **tcp_socket** (Block List, Max: 1) (see below).
* - **http_get** (Block List, Max: 1) (see below).
*
*
*
* ### `container.liveness_probe`
*
* Read-Only:
*
* - **initial_delay_seconds** (Number) Initial delay before the probe runs. Default: `10`. Min: `0`. Max: `600`.
* - **period_seconds** (Number) Interval between probes. Default: `10`. Min: `1`. Max: `600`.
* - **timeout_seconds** (Number) Probe timeout. Default: `1`. Min: `1`. Max: `600`.
* - **success_threshold** (Number) Minimum consecutive successes to be considered healthy. Default: `1`. Min: `1`. Max: `20`.
* - **failure_threshold** (Number) Consecutive failures before restarting the container. Default: `3`. Min: `1`. Max: `20`.
* - **exec** (Block List, Max: 1) (see below).
* - **grpc** (Block List, Max: 1) (see below).
* - **tcp_socket** (Block List, Max: 1) (see below).
* - **http_get** (Block List, Max: 1) (see below).
*
*
*
* ### `container.*_probe.exec`
*
* Read-Only:
*
* - **command** (List of String) Command executed inside the container when the probe runs.
*
*
*
* ### `container.*_probe.grpc`
*
* Read-Only:
*
* - **port** (Number) gRPC port used for the probe.
*
*
*
* ### `container.*_probe.tcp_socket`
*
* Read-Only:
*
* - **port** (Number) TCP port used for the probe.
*
*
*
* ### `container.*_probe.http_get`
*
* Read-Only:
*
* - **path** (String) HTTP path to query. Default: `/`.
* - **port** (Number) Port for the HTTP GET. Min: `80`. Max: `65535`.
* - **http_headers** (Map of String) Headers included in the probe request.
* - **scheme** (String) HTTP scheme. Either `HTTP` or `HTTPS`. Default: `HTTP`.
*
*
*
* ### `container.gpu_nvidia`
*
* Read-Only:
*
* - **model** (String) GPU model (for example, `t4`).
* - **quantity** (Number) Number of NVIDIA GPUs attached to the container.
*
*
*
* ### `container.gpu_custom`
*
* Read-Only:
*
* - **resource** (String) Name of the custom GPU resource.
* - **quantity** (Number) Number of GPUs requested.
* - **runtime_class** (String) Runtime class that must be used with the custom GPU.
*
*
*
* ### `container.lifecycle`
*
* Read-Only:
*
* - **post_start** (Block List, Max: 1) (see below).
* - **pre_stop** (Block List, Max: 1) (see below).
*
*
*
* ### `container.lifecycle.*`
*
* Read-Only:
*
* - **exec** (Block List, Max: 1) (see below).
*
*
*
* ### `container.lifecycle.*.exec`
*
* Read-Only:
*
* - **command** (List of String) Command executed during the lifecycle hook.
*
*
*
* ### `container.volume`
*
* > **Note** The following paths are reserved and cannot be used: `/dev`, `/dev/log`, `/tmp`, `/var`, `/var/log`.
*
* > **Note** Valid URI prefixes include `s3://bucket`, `gs://bucket`, `azureblob://storageAccount/container`, `azurefs://storageAccount/share`, `cpln://secret`, `cpln://volumeset`, and `scratch://`.
*
* Read-Only:
*
* - **uri** (String) URI of a volume hosted in Control Plane (Volume Set) or a supported cloud provider.
* - **recovery_policy** (String) Recovery policy for persistent volumes. Either `retain` or `recycle`. **Deprecated – no longer used.**
* - **path** (String) File-system path where the volume is mounted inside the container.
* - **name** (String) VM disk name. Only set for `vm` workloads.
* - **bus** (String) VM disk bus. Only set for `vm` workloads. Either `virtio`, `sata`, or `scsi`.
* - **boot_order** (Number) VM disk boot order. Only set for `vm` workloads.
*
*
*
* ### `firewallSpec`
*
* Controls inbound and outbound access for external (public) and internal (service-to-service) traffic. Access is restricted by default.
*
* Read-Only:
*
* - **external** (Block List, Max: 1) (see below).
* - **internal** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external`
*
* Read-Only:
*
* - **inbound_allow_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks allowed to reach the workload. `0.0.0.0/0` opens access to the public internet.
* - **inbound_blocked_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks explicitly denied.
* - **outbound_allow_hostname** (List of String) Public hostnames the workload can reach. Wildcards are allowed only as a prefix (for example, `*.amazonaws.com`).
* - **outbound_allow_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks the workload can reach. `0.0.0.0/0` enables outbound access to the public internet.
* - **outbound_blocked_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks that are denied even if allow lists include them.
* - **outbound_allow_port** (Block List) (see below).
* - **http** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external.outbound_allow_port`
*
* Allows outbound access to specific ports and protocols.
*
* Read-Only:
*
* - **protocol** (String) Either `http`, `https`, or `tcp`. Default: `tcp`.
* - **number** (Number) Port number. Max: `65000`.
*
*
*
* ### `firewall_spec.external.http`
*
* Firewall options for HTTP workloads.
*
* Read-Only:
*
* - **inbound_header_filter** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external.http.inbound_header_filter`
*
* Configures header-based allow/deny logic.
*
* Read-Only:
*
* - **key** (String) Header name to inspect.
* - **allowed_values** (List of String) Regular expressions describing allowed header values. Requests that fail to match any allowed value are filtered.
* - **blocked_values** (List of String) Regular expressions describing blocked header values. Requests that match any blocked value are filtered.
*
*
*
* ### `firewall_spec.internal`
*
* Controls access between workloads.
*
* Read-Only:
*
* - **inbound_allow_type** (String) Internal firewall mode. One of `none`, `same-gvc`, `same-org`, or `workload-list`.
* - **inbound_allow_workload** (List of String) Specific workloads allowed when `inboundAllowType` is `workload-list`.
*
*
*
* ### `options`
*
* Exports the workload-level options applied by Control Plane.
*
* Read-Only:
*
* - **timeout_seconds** (Number) Request timeout in seconds. Default: `5`.
* - **capacity_ai** (Boolean) Whether Capacity AI is enabled. Default: `true`.
* - **capacity_ai_update_minutes** (Number) Minimum interval (in minutes) between Capacity AI reservation updates.
* - **debug** (Boolean) Indicates if debug mode is enabled. Default: `false`.
* - **suspend** (Boolean) Indicates if the workload is suspended. Default: `false`.
* - **autoscaling** (Block List, Max: 1) (see below).
* - **multi_zone** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling`
*
* Read-Only:
*
* - **metric** (String) Scaling metric. One of `concurrency`, `cpu`, `memory`, `rps`, `latency`, `keda`, or `disabled`.
* - **metric_percentile** (String) Percentile to target when the metric represents a distribution (for example, latency).
* - **target** (Number) Target value for the selected metric. Min: `1`. Max: `20000`. Default: `95`.
* - **min_scale** (Number) Minimum replicas allowed. Min: `0`. Max: `maxScale`. Default: `1`.
* - **max_scale** (Number) Maximum replicas allowed. Min: `0`. Default: `5`.
* - **scale_to_zero_delay** (Number) Seconds without requests before scaling to zero. Min: `30`. Max: `3600`. Default: `300`.
* - **max_concurrency** (Number) Maximum concurrent requests per replica. Min: `0`. Max: `1000`. Default: `0`.
* - **multi** (Block List, Max: 1) (see below).
* - **keda** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling.multi`
*
* Read-Only:
*
* - **metric** (String) Either `cpu` or `memory`.
* - **target** (Number) Target value for the metric. Min: `1`. Max: `20000`.
*
*
*
* ### `options.autoscaling.keda`
*
* KEDA (Kubernetes-based Event Driven Autoscaling) configuration.
*
* Read-Only:
*
* - **trigger** (Block List) (see below).
* - **advanced** (Block List) (see below).
* - **fallback** (Block List, Max: 1) (see below).
* - **polling_interval** (Number) Seconds between KEDA polling cycles.
* - **cooldown_period** (Number) Cooldown seconds after scaling to zero before scaling up again.
* - **initial_cooldown_period** (Number) Initial cooldown after scaling to zero.
*
*
*
* ### `options.autoscaling.keda.trigger`
*
* Defines event-driven scaling triggers.
*
* Read-Only:
*
* - **type** (String) Trigger type (for example, `prometheus`, `aws-sqs`).
* - **metadata** (Map of String) Configuration parameters required by the trigger.
* - **name** (String) Optional trigger name.
* - **use_cached_metrics** (Boolean) Indicates whether metrics caching is enabled during the polling interval.
* - **metric_type** (String) Metric type used for scaling.
* - **authentication_ref** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling.keda.trigger.authentication_ref`
*
* Read-Only:
*
* - **name** (String) Name of the secret listed in `spec.keda.secrets` on the GVC.
*
*
*
* ### `options.autoscaling.keda.advanced`
*
* Advanced KEDA modifiers.
*
* Read-Only:
*
* - **scaling_modifiers** (Block List) (see below).
*
*
*
* ### `options.autoscaling.keda.advanced.scaling_modifiers`
*
* Read-Only:
*
* - **target** (String) New target value for the composed metric.
* - **activation_target** (String) Activation target for the composed metric.
* - **metric_type** (String) Metric type used for the composed metric.
* - **formula** (String) Expression that combines or transforms metrics.
*
*
*
* ### `options.autoscaling.keda.fallback`
*
* Required:
*
* - **failure_threshold** (Number) Number of consecutive failures required to trigger fallback behavior.
* - **replicas** (Number) Number of replicas to scale to when fallback is triggered.
*
* Optional:
*
* - **behavior** (String) Behavior to apply when fallback is triggered. Valid values: `static`, `currentReplicas`, `currentReplicasIfHigher`, `currentReplicasIfLower`.
*
*
*
* ### `options.multi_zone`
*
* Read-Only:
*
* - **enabled** (Boolean) Indicates if multi-zone execution is enabled.
*
*
*
* ### `localOptions`
*
* Overrides default options for specific Control Plane locations.
*
* Read-Only:
*
* - **location** (String) Location name whose options are overridden.
* - All attributes from `options` are repeated here with location-specific values.
*
*
*
* ### `job`
*
* Exports cron workload settings.
*
* Read-Only:
*
* - **schedule** (String) Cron schedule expression determining job execution times.
* - **concurrency_policy** (String) Either `Forbid`, `Replace` or `Allow`. Determines how overlapping jobs are handled.
* - **history_limit** (Number) Maximum completed job instances retained. Integer between `1` and `10`. Default: `5`.
* - **restart_policy** (String) Either `OnFailure` or `Never`. Default: `Never`.
* - **active_deadline_seconds** (Number) Maximum seconds a job can run before it is forcibly stopped.
*
*
*
* ### `sidecar`
*
* Read-Only:
*
* - **envoy** (String) Name of the Envoy sidecar configuration attached to the workload.
*
*
*
* ### `rolloutOptions`
*
* Controls rolling-update behavior.
*
* Read-Only:
*
* - **min_ready_seconds** (Number) Minimum seconds a container must run without crashing to be considered available.
* - **max_unavailable_replicas** (String) Maximum replicas that can be unavailable during an update.
* - **max_surge_replicas** (String) Maximum replicas above the desired count during an update.
* - **scaling_policy** (String) Update strategy. Either `OrderedReady` or `Parallel`. Default: `OrderedReady`.
* - **termination_grace_period_seconds** (Number) Seconds allowed for graceful termination, including `preStop` hooks.
*
* > **Note** `maxSurgeReplicas` and `maxUnavailableReplicas` accept absolute numbers (for example, `2`) or percentages (for example, `50%`), and they cannot both be zero.
*
*
*
* ### `securityOptions`
*
* Read-Only:
*
* - **file_system_group_id** (Number) Group ID applied to mounted volumes.
* - **run_as_user** (Number) The user id assigned to all container processes.
*
*
*
* ### `loadBalancer`
*
* Read-Only:
*
* - **replica_direct** (Boolean) When `true`, individual replicas can be reached directly using `replica-` subdomains. Only valid for `stateful` workloads.
* - **direct** (Block List, Max: 1) (see below).
* - **geo_location** (Block List, Max: 1) (see below).
*
*
*
* ### `load_balancer.direct`
*
* Direct load balancers are created in each workload location and expose the workload's standard endpoints. Customers must configure certificates if TLS is required.
*
* Read-Only:
*
* - **enabled** (Boolean) Indicates if the direct load balancer is active.
* - **ipset** (String) Name of the IP set associated with the load balancer, if any.
* - **port** (Block List) (see below).
*
*
*
* ### `load_balancer.direct.port`
*
* Read-Only:
*
* - **external_port** (Number) Public-facing port.
* - **protocol** (String) Protocol exposed publicly.
* - **scheme** (String) Overrides the default `https` URL scheme in generated links.
* - **container_port** (Number) Container port receiving the traffic.
*
*
*
* ### `load_balancer.geo_location`
*
* Read-Only:
*
* - **enabled** (Boolean) When enabled, geo-location headers are injected into inbound HTTP requests.
* - **headers** (Block List, Max: 1) (see below).
*
*
*
* ### `load_balancer.geo_location.headers`
*
* Read-Only:
*
* - **asn** (String) ASN header value injected into requests.
* - **city** (String) City header value.
* - **country** (String) Country header value.
* - **region** (String) Region header value.
*
*
*
* ### `requestRetryPolicy`
*
* Read-Only:
*
* - **attempts** (Number) Number of retry attempts. Default: `2`.
* - **retry_on** (List of String) Retry conditions that trigger another attempt.
*
*
*
* ### `vm`
*
* VM-only configuration for workloads of `type` `vm`.
*
* Read-Only:
*
* - **boot_disk** (Attributes) Boot disk configuration (see below).
* - **cpu** (Attributes) CPU topology visible to the guest (see below).
* - **firmware** (Attributes) Firmware configuration for the guest (see below).
* - **guest_os** (String) Guest operating system family. Either `linux` or `windows`.
* - **network** (Attributes List) Pod-network interface for the VM (see below).
* - **cloud_init** (Attributes) Cloud-init configuration for the guest (see below).
* - **access_credential** (Attributes Set) SSH public keys injected at runtime (see below).
* - **run_strategy** (String) KubeVirt RunStrategy. Either `Always`, `RerunOnFailure`, `Manual`, or `Halted`.
* - **clock** (Attributes) Guest clock configuration (see below).
* - **hostname** (String) Hostname reported to the guest.
* - **subdomain** (String) Subdomain used by the guest for replica-to-replica addressing.
*
*
*
* ### `vm.boot_disk`
*
* Read-Only:
*
* - **source** (Attributes) Boot disk image source (see below).
* - **persist** (Attributes) Per-replica boot PVC populated via CDI (see below).
* - **bus** (String) Disk bus exposed to the guest. Either `virtio`, `sata`, or `scsi`.
* - **boot_order** (Number) Boot order of the boot disk.
*
*
*
* ### `vm.boot_disk.source`
*
* Read-Only:
*
* - **oci** (Attributes) Boot from an OCI containerDisk image (see below).
* - **http** (Attributes) Boot disk image fetched over HTTP/HTTPS (see below).
*
*
*
* ### `vm.boot_disk.source.oci`
*
* Read-Only:
*
* - **image** (String) Full image reference of a containerDisk.
*
*
*
* ### `vm.boot_disk.source.http`
*
* Read-Only:
*
* - **url** (String) HTTP/HTTPS URL of the boot disk image.
* - **checksum** (String) Disk image checksum, formatted as `sha256:` or `sha512:`.
*
*
*
* ### `vm.boot_disk.persist`
*
* Read-Only:
*
* - **volume_set** (String) VolumeSet URI used to provision one PVC per replica for the boot disk.
*
*
*
* ### `vm.cpu`
*
* Read-Only:
*
* - **sockets** (Number) CPU sockets visible to the guest.
* - **threads** (Number) CPU threads per core visible to the guest.
*
*
*
* ### `vm.firmware`
*
* Read-Only:
*
* - **bootloader** (String) Bootloader used by the guest. Either `bios` or `efi`.
* - **secure_boot** (Boolean) Whether UEFI Secure Boot is enabled.
* - **uuid** (String) Fixed SMBIOS UUID for the VM.
* - **serial** (String) SMBIOS system serial number reported to the guest.
* - **smbios** (Attributes) SMBIOS system information reported to the guest (see below).
*
*
*
* ### `vm.firmware.smbios`
*
* Read-Only:
*
* - **manufacturer** (String) SMBIOS system manufacturer.
* - **product** (String) SMBIOS system product name.
* - **version** (String) SMBIOS system version.
* - **sku** (String) SMBIOS system SKU.
* - **family** (String) SMBIOS system family.
*
*
*
* ### `vm.network`
*
* Read-Only:
*
* - **name** (String) Network interface name.
*
*
*
* ### `vm.cloud_init`
*
* Read-Only:
*
* - **user_data** (String) Inline cloud-init user-data.
* - **user_data_base64** (String) Inline cloud-init user-data, base64-encoded.
* - **user_data_secret** (String) Secret containing cloud-init user-data.
* - **ssh_public_key_secrets** (Set of String) SSH public keys injected via cloud-init.
*
*
*
* ### `vm.access_credential`
*
* Read-Only:
*
* - **ssh_public_key_secret** (String) Secret containing the SSH public keys to inject.
* - **users** (Set of String) Guest OS users the SSH public keys are injected for.
* - **delivery_method** (String) Delivery method for the access credential. Either `qemuGuestAgent` or `configDrive`.
*
*
*
* ### `vm.clock`
*
* Read-Only:
*
* - **timezone** (String) Guest timezone.
*
*
*
* ### `health`
*
* Health summary of the workload.
*
* Read-Only:
*
* - **readiness** (String) Readiness of the workload.
* - **sync_failed** (Boolean) Whether the most recent sync of the workload failed.
* - **ready_locations** (Number) Number of locations where the workload is ready.
* - **total_locations** (Number) Total number of locations the workload is deployed to.
* - **ready_replicas** (Number) Number of ready replicas across all locations.
* - **total_replicas** (Number) Total number of replicas across all locations.
*
*
*
* ### `status`
*
* Current state of the workload.
*
* Read-Only:
*
* - **parent_id** (String) ID of the parent object.
* - **canonical_endpoint** (String) Canonical endpoint for the workload.
* - **endpoint** (String) Public endpoint for the workload.
* - **internal_name** (String) Internal hostname used for service-to-service communication.
* - **replica_internal_names** (List of String)
* - **health_check** (Block List) (see below).
* - **current_replica_count** (Number) Current number of replicas deployed.
* - **resolved_images** (Block List) (see below).
* - **load_balancer** (Block List) (see below).
* - **suspended_status** (String) Computed suspension state of the workload. Valid values: `notSuspended`, `partiallySuspended`, `suspended`.
*
*
*
* ### `status.health_check`
*
* Details about the most recent health checks.
*
* Read-Only:
*
* - **active** (Boolean) Indicates if the health check is active.
* - **success** (Boolean) Indicates if the workload is considered healthy.
* - **code** (Number) Status code returned by the check.
* - **message** (String) Health check message.
* - **failures** (Number) Number of recent failures.
* - **successes** (Number) Number of recent successes.
* - **last_checked** (String) Timestamp (UTC) of the last health check.
*
*
*
* ### `status.resolved_images`
*
* Resolved container images when dynamic tags are enabled.
*
* Read-Only:
*
* - **resolved_for_version** (Number) Workload version for which the images were resolved.
* - **resolved_at** (String) UTC timestamp when resolution happened.
* - **error_messages** (List of String) Errors encountered while resolving images.
* - **next_retry_at** (String)
* - **images** (Block List) (see below).
*
*
*
* ### `status.resolved_images.images`
*
* Read-Only:
*
* - **digest** (String) SHA256 digest uniquely identifying the image content.
* - **manifests** (Block List) (see below).
*
*
*
* ### `status.resolved_images.images.manifests`
*
* Read-Only:
*
* - **image** (String) Name and tag of the resolved image.
* - **media_type** (String) MIME type describing the manifest format.
* - **digest** (String) SHA256 digest identifying the manifest.
* - **platform** (Map of String) Key-value pairs describing the target OS and architecture.
*
*
*
* ### `status.load_balancer`
*
* Read-Only:
*
* - **origin** (String) Origin identifier associated with the load balancer.
* - **url** (String) Load-balancer endpoint URL exposed by Control Plane.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as cpln from "@pulumiverse/cpln";
*
* const workload = cpln.getWorkload({
* name: "workload-example",
* gvc: "gvc-example",
* });
* export const workloadId = workload.then(workload => workload.id);
* ```
*/
export declare function getWorkload(args: GetWorkloadArgs, opts?: pulumi.InvokeOptions): Promise;
/**
* A collection of arguments for invoking getWorkload.
*/
export interface GetWorkloadArgs {
containers?: inputs.GetWorkloadContainer[];
firewallSpecs?: inputs.GetWorkloadFirewallSpec[];
gvc: string;
jobs?: inputs.GetWorkloadJob[];
loadBalancers?: inputs.GetWorkloadLoadBalancer[];
localOptions?: inputs.GetWorkloadLocalOption[];
name: string;
options?: inputs.GetWorkloadOption[];
requestRetryPolicies?: inputs.GetWorkloadRequestRetryPolicy[];
rolloutOptions?: inputs.GetWorkloadRolloutOption[];
securityOptions?: inputs.GetWorkloadSecurityOption[];
sidecars?: inputs.GetWorkloadSidecar[];
tags?: {
[key: string]: string;
};
}
/**
* A collection of values returned by getWorkload.
*/
export interface GetWorkloadResult {
readonly containers?: outputs.GetWorkloadContainer[];
readonly cplnId: string;
readonly description: string;
readonly extras: string;
readonly firewallSpecs?: outputs.GetWorkloadFirewallSpec[];
readonly gvc: string;
readonly health: outputs.GetWorkloadHealth;
readonly id: string;
readonly identityLink: string;
readonly jobs?: outputs.GetWorkloadJob[];
readonly loadBalancers?: outputs.GetWorkloadLoadBalancer[];
readonly localOptions?: outputs.GetWorkloadLocalOption[];
readonly name: string;
readonly options?: outputs.GetWorkloadOption[];
readonly requestRetryPolicies?: outputs.GetWorkloadRequestRetryPolicy[];
readonly rolloutOptions?: outputs.GetWorkloadRolloutOption[];
readonly securityOptions?: outputs.GetWorkloadSecurityOption[];
readonly selfLink: string;
readonly sidecars?: outputs.GetWorkloadSidecar[];
readonly statuses: outputs.GetWorkloadStatus[];
readonly supportDynamicTags: boolean;
readonly tags: {
[key: string]: string;
};
readonly type: string;
readonly vm: outputs.GetWorkloadVm;
}
/**
* Use this data source to access information about an existing [Workload](https://docs.controlplane.com/reference/workload) within Control Plane.
*
* ## Required
*
* - **name** (String) Name of the workload.
* - **gvc** (String) Name of the GVC that the specified workload belongs to.
*
* ## Outputs
*
* The following attributes are exported:
*
* - **id** (String) The unique identifier for this workload.
* - **cpln_id** (String) The ID, in GUID format, of the workload.
* - **name** (String) Name of the workload.
* - **gvc** (String) Name of the associated GVC.
* - **type** (String) Workload type. Either `serverless`, `standard`, `stateful`, `cron`, or `vm`.
* - **description** (String) Description of the workload.
* - **tags** (Map of String) Key-value map of resource tags.
* - **self_link** (String) Full link to this resource. Can be referenced by other resources.
* - **identity_link** (String) Full link to the identity used as the access scope for 3rd party cloud resources.
* - **support_dynamic_tags** (Boolean) Indicates if Control Plane automatically redeploys when referenced container images are updated in the registry.
* - **extras** (String) Extra Kubernetes modifications. Only used for BYOK.
* - **container** (Block List) (see below).
* - **firewall_spec** (Block List, Max: 1) (see below).
* - **options** (Block List, Max: 1) (see below).
* - **local_options** (Block List) (see below).
* - **job** (Block List, Max: 1) (see below).
* - **sidecar** (Block List, Max: 1) (see below).
* - **rollout_options** (Block List, Max: 1) (see below).
* - **security_options** (Block List, Max: 1) (see below).
* - **load_balancer** (Block List, Max: 1) (see below).
* - **request_retry_policy** (Block List, Max: 1) (see below).
* - **vm** (Attributes) VM-only configuration. Present when `type` is `vm` (see below).
* - **health** (Attributes) Health summary of the workload (see below).
* - **status** (Block List) (see below).
*
*
*
* ### `container`
*
* > **Note** A workload always exposes at least one container definition.
*
* Read-Only:
*
* - **name** (String) Name of the container. Cannot be `istio-proxy`, `queue-proxy`, or `istio-validation`, and cannot start with `cpln_`.
* - **image** (String) The full image and tag path.
* - **working_directory** (String) Override for the container working directory. Must be an absolute path.
* - **port** (Number) The port the container exposes. Only one container can specify a port. Min: `80`. Max: `65535`. Used by the `serverless` workload type. **Deprecated – use `ports`.**
* - **memory** (String) Reserved memory when Capacity AI is disabled, or maximum memory when it is enabled. Default: `128Mi`.
* - **cpu** (String) Reserved CPU when Capacity AI is disabled, or maximum CPU when it is enabled. Default: `50m`.
* - **min_cpu** (String) Minimum CPU when Capacity AI is enabled.
* - **min_memory** (String) Minimum memory when Capacity AI is enabled.
* - **env** (Map of String) Environment variables exposed to the container.
* - **inherit_env** (Boolean) Indicates whether GVC environment variables are inherited. A variable in `env` overrides the same key from the GVC.
* - **command** (String) Override for the container entry point.
* - **args** (List of String) Command-line arguments passed to the container in order.
* - **metrics** (Block List, Max: 1) (see below).
* - **ports** (Block List) (see below).
* - **readiness_probe** (Block List, Max: 1) (see below).
* - **liveness_probe** (Block List, Max: 1) (see below).
* - **gpu_nvidia** (Block List, Max: 1) (see below).
* - **gpu_custom** (Block List, Max: 1) (see below).
* - **lifecycle** (Block List, Max: 1) (see below).
* - **volume** (Block List) (see below).
*
* > **Note** The following container ports are reserved and cannot be used: `8012`, `8022`, `9090`, `9091`, `15000`, `15001`, `15006`, `15020`, `15021`, `15090`, `41000`.
*
*
*
* ### `container.metrics`
*
* Read-Only:
*
* - **port** (Number) Port that exposes custom metrics.
* - **path** (String) Path where custom metrics are available.
* - **drop_metrics** (List of String) Patterns describing metrics to discard.
*
*
*
* ### `container.ports`
*
* Read-Only:
*
* - **protocol** (String) Protocol. One of `http`, `http2`, `tcp`, or `grpc`.
* - **number** (Number) Port that the container exposes.
*
*
*
* ### `container.readiness_probe`
*
* Read-Only:
*
* - **initial_delay_seconds** (Number) Initial delay before the probe runs. Default: `10`. Min: `0`. Max: `600`.
* - **period_seconds** (Number) Interval between probes. Default: `10`. Min: `1`. Max: `600`.
* - **timeout_seconds** (Number) Probe timeout. Default: `1`. Min: `1`. Max: `600`.
* - **success_threshold** (Number) Minimum consecutive successes to be considered ready. Default: `1`. Min: `1`. Max: `20`.
* - **failure_threshold** (Number) Consecutive failures before marking the container unhealthy. Default: `3`. Min: `1`. Max: `20`.
* - **exec** (Block List, Max: 1) (see below).
* - **grpc** (Block List, Max: 1) (see below).
* - **tcp_socket** (Block List, Max: 1) (see below).
* - **http_get** (Block List, Max: 1) (see below).
*
*
*
* ### `container.liveness_probe`
*
* Read-Only:
*
* - **initial_delay_seconds** (Number) Initial delay before the probe runs. Default: `10`. Min: `0`. Max: `600`.
* - **period_seconds** (Number) Interval between probes. Default: `10`. Min: `1`. Max: `600`.
* - **timeout_seconds** (Number) Probe timeout. Default: `1`. Min: `1`. Max: `600`.
* - **success_threshold** (Number) Minimum consecutive successes to be considered healthy. Default: `1`. Min: `1`. Max: `20`.
* - **failure_threshold** (Number) Consecutive failures before restarting the container. Default: `3`. Min: `1`. Max: `20`.
* - **exec** (Block List, Max: 1) (see below).
* - **grpc** (Block List, Max: 1) (see below).
* - **tcp_socket** (Block List, Max: 1) (see below).
* - **http_get** (Block List, Max: 1) (see below).
*
*
*
* ### `container.*_probe.exec`
*
* Read-Only:
*
* - **command** (List of String) Command executed inside the container when the probe runs.
*
*
*
* ### `container.*_probe.grpc`
*
* Read-Only:
*
* - **port** (Number) gRPC port used for the probe.
*
*
*
* ### `container.*_probe.tcp_socket`
*
* Read-Only:
*
* - **port** (Number) TCP port used for the probe.
*
*
*
* ### `container.*_probe.http_get`
*
* Read-Only:
*
* - **path** (String) HTTP path to query. Default: `/`.
* - **port** (Number) Port for the HTTP GET. Min: `80`. Max: `65535`.
* - **http_headers** (Map of String) Headers included in the probe request.
* - **scheme** (String) HTTP scheme. Either `HTTP` or `HTTPS`. Default: `HTTP`.
*
*
*
* ### `container.gpu_nvidia`
*
* Read-Only:
*
* - **model** (String) GPU model (for example, `t4`).
* - **quantity** (Number) Number of NVIDIA GPUs attached to the container.
*
*
*
* ### `container.gpu_custom`
*
* Read-Only:
*
* - **resource** (String) Name of the custom GPU resource.
* - **quantity** (Number) Number of GPUs requested.
* - **runtime_class** (String) Runtime class that must be used with the custom GPU.
*
*
*
* ### `container.lifecycle`
*
* Read-Only:
*
* - **post_start** (Block List, Max: 1) (see below).
* - **pre_stop** (Block List, Max: 1) (see below).
*
*
*
* ### `container.lifecycle.*`
*
* Read-Only:
*
* - **exec** (Block List, Max: 1) (see below).
*
*
*
* ### `container.lifecycle.*.exec`
*
* Read-Only:
*
* - **command** (List of String) Command executed during the lifecycle hook.
*
*
*
* ### `container.volume`
*
* > **Note** The following paths are reserved and cannot be used: `/dev`, `/dev/log`, `/tmp`, `/var`, `/var/log`.
*
* > **Note** Valid URI prefixes include `s3://bucket`, `gs://bucket`, `azureblob://storageAccount/container`, `azurefs://storageAccount/share`, `cpln://secret`, `cpln://volumeset`, and `scratch://`.
*
* Read-Only:
*
* - **uri** (String) URI of a volume hosted in Control Plane (Volume Set) or a supported cloud provider.
* - **recovery_policy** (String) Recovery policy for persistent volumes. Either `retain` or `recycle`. **Deprecated – no longer used.**
* - **path** (String) File-system path where the volume is mounted inside the container.
* - **name** (String) VM disk name. Only set for `vm` workloads.
* - **bus** (String) VM disk bus. Only set for `vm` workloads. Either `virtio`, `sata`, or `scsi`.
* - **boot_order** (Number) VM disk boot order. Only set for `vm` workloads.
*
*
*
* ### `firewallSpec`
*
* Controls inbound and outbound access for external (public) and internal (service-to-service) traffic. Access is restricted by default.
*
* Read-Only:
*
* - **external** (Block List, Max: 1) (see below).
* - **internal** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external`
*
* Read-Only:
*
* - **inbound_allow_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks allowed to reach the workload. `0.0.0.0/0` opens access to the public internet.
* - **inbound_blocked_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks explicitly denied.
* - **outbound_allow_hostname** (List of String) Public hostnames the workload can reach. Wildcards are allowed only as a prefix (for example, `*.amazonaws.com`).
* - **outbound_allow_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks the workload can reach. `0.0.0.0/0` enables outbound access to the public internet.
* - **outbound_blocked_cidr** (List of String) IPv4/IPv6 addresses or CIDR blocks that are denied even if allow lists include them.
* - **outbound_allow_port** (Block List) (see below).
* - **http** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external.outbound_allow_port`
*
* Allows outbound access to specific ports and protocols.
*
* Read-Only:
*
* - **protocol** (String) Either `http`, `https`, or `tcp`. Default: `tcp`.
* - **number** (Number) Port number. Max: `65000`.
*
*
*
* ### `firewall_spec.external.http`
*
* Firewall options for HTTP workloads.
*
* Read-Only:
*
* - **inbound_header_filter** (Block List, Max: 1) (see below).
*
*
*
* ### `firewall_spec.external.http.inbound_header_filter`
*
* Configures header-based allow/deny logic.
*
* Read-Only:
*
* - **key** (String) Header name to inspect.
* - **allowed_values** (List of String) Regular expressions describing allowed header values. Requests that fail to match any allowed value are filtered.
* - **blocked_values** (List of String) Regular expressions describing blocked header values. Requests that match any blocked value are filtered.
*
*
*
* ### `firewall_spec.internal`
*
* Controls access between workloads.
*
* Read-Only:
*
* - **inbound_allow_type** (String) Internal firewall mode. One of `none`, `same-gvc`, `same-org`, or `workload-list`.
* - **inbound_allow_workload** (List of String) Specific workloads allowed when `inboundAllowType` is `workload-list`.
*
*
*
* ### `options`
*
* Exports the workload-level options applied by Control Plane.
*
* Read-Only:
*
* - **timeout_seconds** (Number) Request timeout in seconds. Default: `5`.
* - **capacity_ai** (Boolean) Whether Capacity AI is enabled. Default: `true`.
* - **capacity_ai_update_minutes** (Number) Minimum interval (in minutes) between Capacity AI reservation updates.
* - **debug** (Boolean) Indicates if debug mode is enabled. Default: `false`.
* - **suspend** (Boolean) Indicates if the workload is suspended. Default: `false`.
* - **autoscaling** (Block List, Max: 1) (see below).
* - **multi_zone** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling`
*
* Read-Only:
*
* - **metric** (String) Scaling metric. One of `concurrency`, `cpu`, `memory`, `rps`, `latency`, `keda`, or `disabled`.
* - **metric_percentile** (String) Percentile to target when the metric represents a distribution (for example, latency).
* - **target** (Number) Target value for the selected metric. Min: `1`. Max: `20000`. Default: `95`.
* - **min_scale** (Number) Minimum replicas allowed. Min: `0`. Max: `maxScale`. Default: `1`.
* - **max_scale** (Number) Maximum replicas allowed. Min: `0`. Default: `5`.
* - **scale_to_zero_delay** (Number) Seconds without requests before scaling to zero. Min: `30`. Max: `3600`. Default: `300`.
* - **max_concurrency** (Number) Maximum concurrent requests per replica. Min: `0`. Max: `1000`. Default: `0`.
* - **multi** (Block List, Max: 1) (see below).
* - **keda** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling.multi`
*
* Read-Only:
*
* - **metric** (String) Either `cpu` or `memory`.
* - **target** (Number) Target value for the metric. Min: `1`. Max: `20000`.
*
*
*
* ### `options.autoscaling.keda`
*
* KEDA (Kubernetes-based Event Driven Autoscaling) configuration.
*
* Read-Only:
*
* - **trigger** (Block List) (see below).
* - **advanced** (Block List) (see below).
* - **fallback** (Block List, Max: 1) (see below).
* - **polling_interval** (Number) Seconds between KEDA polling cycles.
* - **cooldown_period** (Number) Cooldown seconds after scaling to zero before scaling up again.
* - **initial_cooldown_period** (Number) Initial cooldown after scaling to zero.
*
*
*
* ### `options.autoscaling.keda.trigger`
*
* Defines event-driven scaling triggers.
*
* Read-Only:
*
* - **type** (String) Trigger type (for example, `prometheus`, `aws-sqs`).
* - **metadata** (Map of String) Configuration parameters required by the trigger.
* - **name** (String) Optional trigger name.
* - **use_cached_metrics** (Boolean) Indicates whether metrics caching is enabled during the polling interval.
* - **metric_type** (String) Metric type used for scaling.
* - **authentication_ref** (Block List, Max: 1) (see below).
*
*
*
* ### `options.autoscaling.keda.trigger.authentication_ref`
*
* Read-Only:
*
* - **name** (String) Name of the secret listed in `spec.keda.secrets` on the GVC.
*
*
*
* ### `options.autoscaling.keda.advanced`
*
* Advanced KEDA modifiers.
*
* Read-Only:
*
* - **scaling_modifiers** (Block List) (see below).
*
*
*
* ### `options.autoscaling.keda.advanced.scaling_modifiers`
*
* Read-Only:
*
* - **target** (String) New target value for the composed metric.
* - **activation_target** (String) Activation target for the composed metric.
* - **metric_type** (String) Metric type used for the composed metric.
* - **formula** (String) Expression that combines or transforms metrics.
*
*
*
* ### `options.autoscaling.keda.fallback`
*
* Required:
*
* - **failure_threshold** (Number) Number of consecutive failures required to trigger fallback behavior.
* - **replicas** (Number) Number of replicas to scale to when fallback is triggered.
*
* Optional:
*
* - **behavior** (String) Behavior to apply when fallback is triggered. Valid values: `static`, `currentReplicas`, `currentReplicasIfHigher`, `currentReplicasIfLower`.
*
*
*
* ### `options.multi_zone`
*
* Read-Only:
*
* - **enabled** (Boolean) Indicates if multi-zone execution is enabled.
*
*
*
* ### `localOptions`
*
* Overrides default options for specific Control Plane locations.
*
* Read-Only:
*
* - **location** (String) Location name whose options are overridden.
* - All attributes from `options` are repeated here with location-specific values.
*
*
*
* ### `job`
*
* Exports cron workload settings.
*
* Read-Only:
*
* - **schedule** (String) Cron schedule expression determining job execution times.
* - **concurrency_policy** (String) Either `Forbid`, `Replace` or `Allow`. Determines how overlapping jobs are handled.
* - **history_limit** (Number) Maximum completed job instances retained. Integer between `1` and `10`. Default: `5`.
* - **restart_policy** (String) Either `OnFailure` or `Never`. Default: `Never`.
* - **active_deadline_seconds** (Number) Maximum seconds a job can run before it is forcibly stopped.
*
*
*
* ### `sidecar`
*
* Read-Only:
*
* - **envoy** (String) Name of the Envoy sidecar configuration attached to the workload.
*
*
*
* ### `rolloutOptions`
*
* Controls rolling-update behavior.
*
* Read-Only:
*
* - **min_ready_seconds** (Number) Minimum seconds a container must run without crashing to be considered available.
* - **max_unavailable_replicas** (String) Maximum replicas that can be unavailable during an update.
* - **max_surge_replicas** (String) Maximum replicas above the desired count during an update.
* - **scaling_policy** (String) Update strategy. Either `OrderedReady` or `Parallel`. Default: `OrderedReady`.
* - **termination_grace_period_seconds** (Number) Seconds allowed for graceful termination, including `preStop` hooks.
*
* > **Note** `maxSurgeReplicas` and `maxUnavailableReplicas` accept absolute numbers (for example, `2`) or percentages (for example, `50%`), and they cannot both be zero.
*
*
*
* ### `securityOptions`
*
* Read-Only:
*
* - **file_system_group_id** (Number) Group ID applied to mounted volumes.
* - **run_as_user** (Number) The user id assigned to all container processes.
*
*
*
* ### `loadBalancer`
*
* Read-Only:
*
* - **replica_direct** (Boolean) When `true`, individual replicas can be reached directly using `replica-` subdomains. Only valid for `stateful` workloads.
* - **direct** (Block List, Max: 1) (see below).
* - **geo_location** (Block List, Max: 1) (see below).
*
*
*
* ### `load_balancer.direct`
*
* Direct load balancers are created in each workload location and expose the workload's standard endpoints. Customers must configure certificates if TLS is required.
*
* Read-Only:
*
* - **enabled** (Boolean) Indicates if the direct load balancer is active.
* - **ipset** (String) Name of the IP set associated with the load balancer, if any.
* - **port** (Block List) (see below).
*
*
*
* ### `load_balancer.direct.port`
*
* Read-Only:
*
* - **external_port** (Number) Public-facing port.
* - **protocol** (String) Protocol exposed publicly.
* - **scheme** (String) Overrides the default `https` URL scheme in generated links.
* - **container_port** (Number) Container port receiving the traffic.
*
*
*
* ### `load_balancer.geo_location`
*
* Read-Only:
*
* - **enabled** (Boolean) When enabled, geo-location headers are injected into inbound HTTP requests.
* - **headers** (Block List, Max: 1) (see below).
*
*
*
* ### `load_balancer.geo_location.headers`
*
* Read-Only:
*
* - **asn** (String) ASN header value injected into requests.
* - **city** (String) City header value.
* - **country** (String) Country header value.
* - **region** (String) Region header value.
*
*
*
* ### `requestRetryPolicy`
*
* Read-Only:
*
* - **attempts** (Number) Number of retry attempts. Default: `2`.
* - **retry_on** (List of String) Retry conditions that trigger another attempt.
*
*
*
* ### `vm`
*
* VM-only configuration for workloads of `type` `vm`.
*
* Read-Only:
*
* - **boot_disk** (Attributes) Boot disk configuration (see below).
* - **cpu** (Attributes) CPU topology visible to the guest (see below).
* - **firmware** (Attributes) Firmware configuration for the guest (see below).
* - **guest_os** (String) Guest operating system family. Either `linux` or `windows`.
* - **network** (Attributes List) Pod-network interface for the VM (see below).
* - **cloud_init** (Attributes) Cloud-init configuration for the guest (see below).
* - **access_credential** (Attributes Set) SSH public keys injected at runtime (see below).
* - **run_strategy** (String) KubeVirt RunStrategy. Either `Always`, `RerunOnFailure`, `Manual`, or `Halted`.
* - **clock** (Attributes) Guest clock configuration (see below).
* - **hostname** (String) Hostname reported to the guest.
* - **subdomain** (String) Subdomain used by the guest for replica-to-replica addressing.
*
*
*
* ### `vm.boot_disk`
*
* Read-Only:
*
* - **source** (Attributes) Boot disk image source (see below).
* - **persist** (Attributes) Per-replica boot PVC populated via CDI (see below).
* - **bus** (String) Disk bus exposed to the guest. Either `virtio`, `sata`, or `scsi`.
* - **boot_order** (Number) Boot order of the boot disk.
*
*
*
* ### `vm.boot_disk.source`
*
* Read-Only:
*
* - **oci** (Attributes) Boot from an OCI containerDisk image (see below).
* - **http** (Attributes) Boot disk image fetched over HTTP/HTTPS (see below).
*
*
*
* ### `vm.boot_disk.source.oci`
*
* Read-Only:
*
* - **image** (String) Full image reference of a containerDisk.
*
*
*
* ### `vm.boot_disk.source.http`
*
* Read-Only:
*
* - **url** (String) HTTP/HTTPS URL of the boot disk image.
* - **checksum** (String) Disk image checksum, formatted as `sha256:` or `sha512:`.
*
*
*
* ### `vm.boot_disk.persist`
*
* Read-Only:
*
* - **volume_set** (String) VolumeSet URI used to provision one PVC per replica for the boot disk.
*
*
*
* ### `vm.cpu`
*
* Read-Only:
*
* - **sockets** (Number) CPU sockets visible to the guest.
* - **threads** (Number) CPU threads per core visible to the guest.
*
*
*
* ### `vm.firmware`
*
* Read-Only:
*
* - **bootloader** (String) Bootloader used by the guest. Either `bios` or `efi`.
* - **secure_boot** (Boolean) Whether UEFI Secure Boot is enabled.
* - **uuid** (String) Fixed SMBIOS UUID for the VM.
* - **serial** (String) SMBIOS system serial number reported to the guest.
* - **smbios** (Attributes) SMBIOS system information reported to the guest (see below).
*
*
*
* ### `vm.firmware.smbios`
*
* Read-Only:
*
* - **manufacturer** (String) SMBIOS system manufacturer.
* - **product** (String) SMBIOS system product name.
* - **version** (String) SMBIOS system version.
* - **sku** (String) SMBIOS system SKU.
* - **family** (String) SMBIOS system family.
*
*
*
* ### `vm.network`
*
* Read-Only:
*
* - **name** (String) Network interface name.
*
*
*
* ### `vm.cloud_init`
*
* Read-Only:
*
* - **user_data** (String) Inline cloud-init user-data.
* - **user_data_base64** (String) Inline cloud-init user-data, base64-encoded.
* - **user_data_secret** (String) Secret containing cloud-init user-data.
* - **ssh_public_key_secrets** (Set of String) SSH public keys injected via cloud-init.
*
*
*
* ### `vm.access_credential`
*
* Read-Only:
*
* - **ssh_public_key_secret** (String) Secret containing the SSH public keys to inject.
* - **users** (Set of String) Guest OS users the SSH public keys are injected for.
* - **delivery_method** (String) Delivery method for the access credential. Either `qemuGuestAgent` or `configDrive`.
*
*
*
* ### `vm.clock`
*
* Read-Only:
*
* - **timezone** (String) Guest timezone.
*
*
*
* ### `health`
*
* Health summary of the workload.
*
* Read-Only:
*
* - **readiness** (String) Readiness of the workload.
* - **sync_failed** (Boolean) Whether the most recent sync of the workload failed.
* - **ready_locations** (Number) Number of locations where the workload is ready.
* - **total_locations** (Number) Total number of locations the workload is deployed to.
* - **ready_replicas** (Number) Number of ready replicas across all locations.
* - **total_replicas** (Number) Total number of replicas across all locations.
*
*
*
* ### `status`
*
* Current state of the workload.
*
* Read-Only:
*
* - **parent_id** (String) ID of the parent object.
* - **canonical_endpoint** (String) Canonical endpoint for the workload.
* - **endpoint** (String) Public endpoint for the workload.
* - **internal_name** (String) Internal hostname used for service-to-service communication.
* - **replica_internal_names** (List of String)
* - **health_check** (Block List) (see below).
* - **current_replica_count** (Number) Current number of replicas deployed.
* - **resolved_images** (Block List) (see below).
* - **load_balancer** (Block List) (see below).
* - **suspended_status** (String) Computed suspension state of the workload. Valid values: `notSuspended`, `partiallySuspended`, `suspended`.
*
*
*
* ### `status.health_check`
*
* Details about the most recent health checks.
*
* Read-Only:
*
* - **active** (Boolean) Indicates if the health check is active.
* - **success** (Boolean) Indicates if the workload is considered healthy.
* - **code** (Number) Status code returned by the check.
* - **message** (String) Health check message.
* - **failures** (Number) Number of recent failures.
* - **successes** (Number) Number of recent successes.
* - **last_checked** (String) Timestamp (UTC) of the last health check.
*
*
*
* ### `status.resolved_images`
*
* Resolved container images when dynamic tags are enabled.
*
* Read-Only:
*
* - **resolved_for_version** (Number) Workload version for which the images were resolved.
* - **resolved_at** (String) UTC timestamp when resolution happened.
* - **error_messages** (List of String) Errors encountered while resolving images.
* - **next_retry_at** (String)
* - **images** (Block List) (see below).
*
*
*
* ### `status.resolved_images.images`
*
* Read-Only:
*
* - **digest** (String) SHA256 digest uniquely identifying the image content.
* - **manifests** (Block List) (see below).
*
*
*
* ### `status.resolved_images.images.manifests`
*
* Read-Only:
*
* - **image** (String) Name and tag of the resolved image.
* - **media_type** (String) MIME type describing the manifest format.
* - **digest** (String) SHA256 digest identifying the manifest.
* - **platform** (Map of String) Key-value pairs describing the target OS and architecture.
*
*
*
* ### `status.load_balancer`
*
* Read-Only:
*
* - **origin** (String) Origin identifier associated with the load balancer.
* - **url** (String) Load-balancer endpoint URL exposed by Control Plane.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as cpln from "@pulumiverse/cpln";
*
* const workload = cpln.getWorkload({
* name: "workload-example",
* gvc: "gvc-example",
* });
* export const workloadId = workload.then(workload => workload.id);
* ```
*/
export declare function getWorkloadOutput(args: GetWorkloadOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output;
/**
* A collection of arguments for invoking getWorkload.
*/
export interface GetWorkloadOutputArgs {
containers?: pulumi.Input[]>;
firewallSpecs?: pulumi.Input[]>;
gvc: pulumi.Input;
jobs?: pulumi.Input[]>;
loadBalancers?: pulumi.Input[]>;
localOptions?: pulumi.Input[]>;
name: pulumi.Input;
options?: pulumi.Input[]>;
requestRetryPolicies?: pulumi.Input[]>;
rolloutOptions?: pulumi.Input[]>;
securityOptions?: pulumi.Input[]>;
sidecars?: pulumi.Input[]>;
tags?: pulumi.Input<{
[key: string]: pulumi.Input;
}>;
}