HostKit.Project (host_kit v0.1.0-beta.0)

Copy Markdown View Source

Project-level declaration loaded from HostKit DSL files.

Summary

Types

t()

@type t() :: %HostKit.Project{
  conventions: map(),
  hosts: [HostKit.Host.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

add_host(project, host)

@spec add_host(t(), HostKit.Host.t()) :: t()

add_proxy(project, proxy)

@spec add_proxy(t(), HostKit.Proxy.t()) :: t()

add_resource(project, resource)

@spec add_resource(
  t(),
  struct()
) :: t()

add_service(project, service)

@spec add_service(t(), HostKit.Service.t()) :: t()

add_tenant(project, tenant)

@spec add_tenant(t(), HostKit.Tenant.t()) :: t()

fetch_host(project, name)

@spec fetch_host(t(), atom()) :: {:ok, HostKit.Host.t()} | :error
@spec fetch_host(t(), String.t()) :: {:ok, HostKit.Host.t()} | :error

new(name, opts \\ [])

@spec new(
  atom(),
  keyword()
) :: t()

put_convention_prefix(project, name, prefix)

@spec put_convention_prefix(t(), atom(), String.t()) :: t()

put_convention_root(project, name, path)

@spec put_convention_root(t(), atom(), String.t()) :: t()

put_provider_config(project, config)

@spec put_provider_config(t(), HostKit.ProviderConfig.t()) :: t()

put_providers(project, providers)

@spec put_providers(t(), [module()]) :: t()

resources(project)

@spec resources(t()) :: [struct()]