Project-level declaration loaded from HostKit DSL files.
Summary
Functions
Audits this project by building a plan against the selected target.
Reads current target state for this project's desired resources.
Resolves service selectors against service name, identity, or path.
Resolves service selectors or raises on unknown/ambiguous selectors.
Returns project resources, optionally scoped to selected services.
Types
@type t() :: %HostKit.Project{ conventions: map(), hosts: [HostKit.Host.t()], instances: [HostKit.Instance.t()], meta: map(), name: atom(), provider_configs: %{optional(atom()) => HostKit.ProviderConfig.t()}, providers: [module()], proxies: [HostKit.Proxy.t()], resources: [struct()], services: [HostKit.Service.t()], tenants: [HostKit.Tenant.t()] }
Functions
@spec add_host(t(), HostKit.Host.t()) :: t()
@spec add_instance(t(), HostKit.Instance.t()) :: t()
@spec add_proxy(t(), HostKit.Proxy.t()) :: t()
@spec add_service(t(), HostKit.Service.t()) :: t()
@spec add_tenant(t(), HostKit.Tenant.t()) :: t()
@spec audit( t(), keyword() ) :: {:ok, HostKit.Plan.t()} | {:error, term()}
Audits this project by building a plan against the selected target.
@spec fetch_host(t(), atom()) :: {:ok, HostKit.Host.t()} | :error
@spec fetch_host(t(), String.t()) :: {:ok, HostKit.Host.t()} | :error
@spec fetch_instance(t(), atom() | String.t()) :: {:ok, HostKit.Instance.t()} | :error
@spec put_provider_config(t(), HostKit.ProviderConfig.t()) :: t()
Reads current target state for this project's desired resources.
@spec resolve_services(t(), [atom() | String.t()] | nil) :: {:ok, [atom()] | nil} | {:error, term()}
Resolves service selectors against service name, identity, or path.
Resolves service selectors or raises on unknown/ambiguous selectors.
Returns project resources, optionally scoped to selected services.