Current section
Files
Jump to
Current section
Files
src/midas/sdk/netlify/schema.gleam
import decode/zero
import gleam/json
import gleam/option.{type Option, None}
pub type AssetPublicSignature {
AssetPublicSignature(url: Option(String))
}
pub type SiteFunction {
SiteFunction(
branch: Option(String),
created_at: Option(String),
provider: Option(String),
log_type: Option(String),
id: Option(String),
functions: Option(Nil),
)
}
pub type DnsZones {
DnsZones
}
pub type HookType {
HookType(
name: Option(String),
events: Option(List(String)),
fields: Option(Nil),
)
}
pub type Snippet {
Snippet(
general_position: Option(String),
general: Option(String),
site_id: Option(String),
goal: Option(String),
goal_position: Option(String),
title: Option(String),
id: Option(Int),
)
}
pub type File {
File(
size: Option(Int),
path: Option(String),
mime_type: Option(String),
sha: Option(String),
id: Option(String),
)
}
pub type TrafficRulesConfig {
TrafficRulesConfig(action: Option(Nil))
}
pub type DevServerHook {
DevServerHook(
branch: Option(String),
created_at: Option(String),
url: Option(String),
site_id: Option(String),
title: Option(String),
type_: Option(String),
id: Option(String),
)
}
pub type EnvVar {
EnvVar(
values: Option(Nil),
is_secret: Option(Bool),
updated_at: Option(String),
updated_by: Option(Nil),
scopes: Option(List(String)),
key: Option(String),
)
}
pub type DnsRecord {
DnsRecord(
priority: Option(Int),
ttl: Option(Int),
flag: Option(Int),
value: Option(String),
hostname: Option(String),
site_id: Option(String),
dns_zone_id: Option(String),
type_: Option(String),
tag: Option(String),
id: Option(String),
managed: Option(Bool),
)
}
pub type Member {
Member(
role: Option(String),
avatar: Option(String),
id: Option(String),
full_name: Option(String),
email: Option(String),
)
}
pub type FunctionConfig {
FunctionConfig(
priority: Option(Int),
display_name: Option(String),
routes: Option(Nil),
generator: Option(String),
traffic_rules: Option(Nil),
build_data: Option(Nil),
excluded_routes: Option(Nil),
)
}
pub type PluginParams {
PluginParams(pinned_version: Option(String))
}
pub type DnsRecords {
DnsRecords
}
pub type DeployKey {
DeployKey(
public_key: Option(String),
created_at: Option(String),
id: Option(String),
)
}
pub type Function {
Function(name: Option(String), sha: Option(String), id: Option(String))
}
pub type DevServer {
DevServer(
branch: Option(String),
live_at: Option(String),
created_at: Option(String),
error_at: Option(String),
url: Option(String),
done_at: Option(String),
state: Option(String),
starting_at: Option(String),
site_id: Option(String),
updated_at: Option(String),
title: Option(String),
id: Option(String),
)
}
pub type PluginRun {
PluginRun(
package: Option(String),
summary: Option(String),
reporting_event: Option(String),
text: Option(String),
state: Option(String),
deploy_id: Option(String),
version: Option(String),
title: Option(String),
)
}
pub type EnvVarValue {
EnvVarValue(
context: Option(String),
value: Option(String),
context_parameter: Option(String),
id: Option(String),
)
}
pub type SiteSetup {
SiteSetup(
domain_aliases: Option(List(String)),
deploy_preview_custom_domain: Option(String),
session_id: Option(String),
id_domain: Option(String),
notification_email: Option(String),
managed_dns: Option(Bool),
plan: Option(String),
build_image: Option(String),
created_at: Option(String),
name: Option(String),
ssl: Option(Bool),
account_id: Option(String),
url: Option(String),
user_id: Option(String),
processing_settings: Option(Nil),
state: Option(String),
custom_domain: Option(String),
repo: Option(Nil),
build_settings: Option(Nil),
screenshot_url: Option(String),
capabilities: Option(Nil),
deploy_url: Option(String),
updated_at: Option(String),
branch_deploy_custom_domain: Option(String),
default_hooks_data: Option(Nil),
functions_region: Option(String),
published_deploy: Option(Nil),
force_ssl: Option(Bool),
prerender: Option(String),
id: Option(String),
deploy_hook: Option(String),
password: Option(String),
ssl_url: Option(String),
account_name: Option(String),
account_slug: Option(String),
git_provider: Option(String),
admin_url: Option(String),
)
}
pub type DnsRecordCreate {
DnsRecordCreate(
port: Option(Int),
priority: Option(Int),
ttl: Option(Int),
flag: Option(Int),
value: Option(String),
hostname: Option(String),
weight: Option(Int),
type_: Option(String),
tag: Option(String),
)
}
pub type AccessToken {
AccessToken(
user_email: Option(String),
created_at: Option(String),
user_id: Option(String),
id: Option(String),
access_token: Option(String),
)
}
pub type Service {
Service(
environments: Option(List(String)),
created_at: Option(String),
name: Option(String),
slug: Option(String),
service_path: Option(String),
updated_at: Option(String),
tags: Option(List(String)),
icon: Option(String),
events: Option(Nil),
long_description: Option(String),
id: Option(String),
description: Option(String),
manifest_url: Option(String),
)
}
pub type DnsZone {
DnsZone(
records: Option(Nil),
domain: Option(String),
ipv6_enabled: Option(Bool),
created_at: Option(String),
name: Option(String),
errors: Option(List(String)),
account_id: Option(String),
dedicated: Option(Bool),
user_id: Option(String),
site_id: Option(String),
updated_at: Option(String),
dns_servers: Option(List(String)),
id: Option(String),
supported_record_types: Option(List(String)),
account_name: Option(String),
account_slug: Option(String),
)
}
pub type AssetForm {
AssetForm(url: Option(String), fields: Option(Nil))
}
pub type Plugin {
Plugin(package: Option(String), pinned_version: Option(String))
}
pub type SplitTestSetup {
SplitTestSetup(branch_tests: Option(Nil))
}
pub type FunctionRoute {
FunctionRoute(
literal: Option(String),
pattern: Option(String),
methods: Option(List(String)),
expression: Option(String),
prefer_static: Option(Bool),
)
}
pub type BuildHook {
BuildHook(
branch: Option(String),
created_at: Option(String),
url: Option(String),
site_id: Option(String),
title: Option(String),
id: Option(String),
)
}
pub type Asset {
Asset(
content_type: Option(String),
size: Option(Int),
created_at: Option(String),
name: Option(String),
creator_id: Option(String),
url: Option(String),
state: Option(String),
visibility: Option(String),
site_id: Option(String),
updated_at: Option(String),
id: Option(String),
key: Option(String),
)
}
pub type DeployFiles {
DeployFiles(
draft: Option(Bool),
branch: Option(String),
functions_config: Option(Nil),
function_schedules: Option(Nil),
files: Option(Nil),
framework_version: Option(String),
functions: Option(Nil),
async: Option(Bool),
framework: Option(String),
)
}
pub type AccountSetup {
AccountSetup(
type_id: Option(String),
payment_method_id: Option(String),
period: Option(String),
name: Option(String),
extra_seats_block: Option(Int),
)
}
pub type Metadata {
Metadata
}
pub type FunctionSchedule {
FunctionSchedule(name: Option(String), cron: Option(String))
}
pub type BuildSetup {
BuildSetup(clear_cache: Option(Bool), image: Option(String))
}
pub type AccountAddMemberSetup {
AccountAddMemberSetup(role: Option(String), email: Option(String))
}
pub type Build {
Build(
done: Option(Bool),
error: Option(String),
created_at: Option(String),
sha: Option(String),
deploy_id: Option(String),
id: Option(String),
)
}
pub type AccountUpdateMemberSetup {
AccountUpdateMemberSetup(
site_ids: Option(List(String)),
role: Option(String),
site_access: Option(String),
)
}
pub type AccountUsageCapability {
AccountUsageCapability(included: Option(Int), used: Option(Int))
}
pub type Submission {
Submission(
body: Option(String),
summary: Option(String),
number: Option(Int),
created_at: Option(String),
data: Option(Nil),
name: Option(String),
last_name: Option(String),
site_url: Option(String),
first_name: Option(String),
id: Option(String),
email: Option(String),
company: Option(String),
)
}
pub type Ticket {
Ticket(
created_at: Option(String),
client_id: Option(String),
id: Option(String),
authorized: Option(Bool),
)
}
pub type SplitTest {
SplitTest(
path: Option(String),
active: Option(Bool),
created_at: Option(String),
name: Option(String),
branches: Option(Nil),
site_id: Option(String),
updated_at: Option(String),
id: Option(String),
unpublished_at: Option(String),
)
}
pub type BuildHookSetup {
BuildHookSetup(branch: Option(String), title: Option(String))
}
pub type User {
User(
last_login: Option(String),
avatar_url: Option(String),
created_at: Option(String),
login_providers: Option(List(String)),
affiliate_id: Option(String),
uid: Option(String),
onboarding_progress: Option(Nil),
site_count: Option(Int),
id: Option(String),
full_name: Option(String),
email: Option(String),
)
}
pub type BuildLogMsg {
BuildLogMsg(
section: Option(String),
message: Option(String),
error: Option(Bool),
)
}
pub type Purge {
Purge(
site_slug: Option(String),
site_id: Option(String),
cache_tags: Option(List(String)),
)
}
pub type ServiceInstance {
ServiceInstance(
config: Option(Nil),
created_at: Option(String),
external_attributes: Option(Nil),
env: Option(Nil),
url: Option(String),
service_path: Option(String),
service_name: Option(String),
service_slug: Option(String),
snippets: Option(Nil),
updated_at: Option(String),
auth_url: Option(String),
id: Option(String),
)
}
pub type SniCertificate {
SniCertificate(
created_at: Option(String),
domains: Option(List(String)),
state: Option(String),
updated_at: Option(String),
expires_at: Option(String),
)
}
pub type AuditLog {
AuditLog(account_id: Option(String), payload: Option(Nil), id: Option(String))
}
pub type AssetSignature {
AssetSignature(form: Option(Nil), asset: Option(Nil))
}
pub type DnsZoneSetup {
DnsZoneSetup(
name: Option(String),
site_id: Option(String),
account_slug: Option(String),
)
}
pub type Error {
Error(message: Option(String), code: Option(Int))
}
pub type DeployedBranch {
DeployedBranch(
name: Option(String),
slug: Option(String),
url: Option(String),
deploy_id: Option(String),
id: Option(String),
ssl_url: Option(String),
)
}
pub type ExcludedFunctionRoute {
ExcludedFunctionRoute(
literal: Option(String),
pattern: Option(String),
expression: Option(String),
)
}
pub type Site {
Site(
domain_aliases: Option(List(String)),
deploy_preview_custom_domain: Option(String),
session_id: Option(String),
id_domain: Option(String),
notification_email: Option(String),
managed_dns: Option(Bool),
plan: Option(String),
build_image: Option(String),
created_at: Option(String),
name: Option(String),
ssl: Option(Bool),
account_id: Option(String),
url: Option(String),
user_id: Option(String),
processing_settings: Option(Nil),
state: Option(String),
custom_domain: Option(String),
build_settings: Option(Nil),
screenshot_url: Option(String),
capabilities: Option(Nil),
deploy_url: Option(String),
updated_at: Option(String),
branch_deploy_custom_domain: Option(String),
default_hooks_data: Option(Nil),
functions_region: Option(String),
published_deploy: Option(Nil),
force_ssl: Option(Bool),
prerender: Option(String),
id: Option(String),
deploy_hook: Option(String),
password: Option(String),
ssl_url: Option(String),
account_name: Option(String),
account_slug: Option(String),
git_provider: Option(String),
admin_url: Option(String),
)
}
pub type SplitTests {
SplitTests
}
pub type AccountType {
AccountType(
monthly_seats_addon_dollar_price: Option(Int),
yearly_seats_addon_dollar_price: Option(Int),
name: Option(String),
capabilities: Option(Nil),
monthly_dollar_price: Option(Int),
id: Option(String),
yearly_dollar_price: Option(Int),
description: Option(String),
)
}
pub type AccountUpdateSetup {
AccountUpdateSetup(
type_id: Option(String),
name: Option(String),
slug: Option(String),
extra_seats_block: Option(Int),
billing_name: Option(String),
billing_email: Option(String),
billing_details: Option(String),
)
}
pub type PaymentMethod {
PaymentMethod(
method_name: Option(String),
created_at: Option(String),
data: Option(Nil),
state: Option(String),
updated_at: Option(String),
type_: Option(String),
id: Option(String),
)
}
pub type TrafficRulesAggregateConfig {
TrafficRulesAggregateConfig(keys: Option(Nil))
}
pub type Deploy {
Deploy(
draft: Option(Bool),
branch: Option(String),
review_id: Option(Float),
published_at: Option(String),
deploy_ssl_url: Option(String),
commit_url: Option(String),
review_url: Option(String),
created_at: Option(String),
locked: Option(Bool),
commit_ref: Option(String),
name: Option(String),
build_id: Option(String),
url: Option(String),
context: Option(String),
user_id: Option(String),
error_message: Option(String),
skipped: Option(Bool),
state: Option(String),
site_id: Option(String),
function_schedules: Option(Nil),
screenshot_url: Option(String),
deploy_url: Option(String),
updated_at: Option(String),
title: Option(String),
id: Option(String),
required_functions: Option(List(String)),
ssl_url: Option(String),
framework: Option(String),
admin_url: Option(String),
required: Option(List(String)),
)
}
pub type EnvVarUser {
EnvVarUser(
avatar_url: Option(String),
id: Option(String),
full_name: Option(String),
email: Option(String),
)
}
pub type Form {
Form(
created_at: Option(String),
name: Option(String),
paths: Option(List(String)),
site_id: Option(String),
fields: Option(Nil),
id: Option(String),
submission_count: Option(Int),
)
}
pub type AccountMembership {
AccountMembership(
type_id: Option(String),
payment_method_id: Option(String),
billing_period: Option(String),
roles_allowed: Option(List(String)),
created_at: Option(String),
name: Option(String),
slug: Option(String),
owner_ids: Option(List(String)),
billing_name: Option(String),
type_name: Option(String),
capabilities: Option(Nil),
updated_at: Option(String),
billing_email: Option(String),
type_: Option(String),
id: Option(String),
billing_details: Option(String),
)
}
pub type TrafficRulesRateLimitConfig {
TrafficRulesRateLimitConfig(
window_limit: Option(Int),
algorithm: Option(String),
window_size: Option(Int),
)
}
pub type Hook {
Hook(
created_at: Option(String),
data: Option(Nil),
site_id: Option(String),
updated_at: Option(String),
event: Option(String),
type_: Option(String),
id: Option(String),
disabled: Option(Bool),
)
}
pub type DevServerHookSetup {
DevServerHookSetup(
branch: Option(String),
title: Option(String),
type_: Option(String),
)
}
pub type PluginRunData {
PluginRunData(
package: Option(String),
summary: Option(String),
reporting_event: Option(String),
text: Option(String),
state: Option(String),
version: Option(String),
title: Option(String),
)
}
pub type RepoInfo {
RepoInfo(
installation_id: Option(Int),
stop_builds: Option(Bool),
repo_url: Option(String),
allowed_branches: Option(List(String)),
public_repo: Option(Bool),
functions_dir: Option(String),
private_logs: Option(Bool),
dir: Option(String),
env: Option(Nil),
repo_branch: Option(String),
provider: Option(String),
repo_path: Option(String),
deploy_key_id: Option(String),
cmd: Option(String),
id: Option(Int),
)
}
pub type BuildStatus {
BuildStatus(
active: Option(Int),
pending_concurrency: Option(Int),
enqueued: Option(Int),
build_count: Option(Int),
minutes: Option(Nil),
)
}
pub const asset_public_signature = AssetPublicSignature(url: None)
pub const site_function = SiteFunction(
branch: None,
created_at: None,
provider: None,
log_type: None,
id: None,
functions: None,
)
pub const dns_zones = []
pub const hook_type = HookType(name: None, events: None, fields: None)
pub const snippet = Snippet(
general_position: None,
general: None,
site_id: None,
goal: None,
goal_position: None,
title: None,
id: None,
)
pub const file = File(
size: None,
path: None,
mime_type: None,
sha: None,
id: None,
)
pub const traffic_rules_config = TrafficRulesConfig(action: None)
pub const dev_server_hook = DevServerHook(
branch: None,
created_at: None,
url: None,
site_id: None,
title: None,
type_: None,
id: None,
)
pub const env_var = EnvVar(
values: None,
is_secret: None,
updated_at: None,
updated_by: None,
scopes: None,
key: None,
)
pub const dns_record = DnsRecord(
priority: None,
ttl: None,
flag: None,
value: None,
hostname: None,
site_id: None,
dns_zone_id: None,
type_: None,
tag: None,
id: None,
managed: None,
)
pub const member = Member(
role: None,
avatar: None,
id: None,
full_name: None,
email: None,
)
pub const function_config = FunctionConfig(
priority: None,
display_name: None,
routes: None,
generator: None,
traffic_rules: None,
build_data: None,
excluded_routes: None,
)
pub const plugin_params = PluginParams(pinned_version: None)
pub const dns_records = []
pub const deploy_key = DeployKey(public_key: None, created_at: None, id: None)
pub const function = Function(name: None, sha: None, id: None)
pub const dev_server = DevServer(
branch: None,
live_at: None,
created_at: None,
error_at: None,
url: None,
done_at: None,
state: None,
starting_at: None,
site_id: None,
updated_at: None,
title: None,
id: None,
)
pub const plugin_run = PluginRun(
package: None,
summary: None,
reporting_event: None,
text: None,
state: None,
deploy_id: None,
version: None,
title: None,
)
pub const env_var_value = EnvVarValue(
context: None,
value: None,
context_parameter: None,
id: None,
)
pub const site_setup = SiteSetup(
domain_aliases: None,
deploy_preview_custom_domain: None,
session_id: None,
id_domain: None,
notification_email: None,
managed_dns: None,
plan: None,
build_image: None,
created_at: None,
name: None,
ssl: None,
account_id: None,
url: None,
user_id: None,
processing_settings: None,
state: None,
custom_domain: None,
repo: None,
build_settings: None,
screenshot_url: None,
capabilities: None,
deploy_url: None,
updated_at: None,
branch_deploy_custom_domain: None,
default_hooks_data: None,
functions_region: None,
published_deploy: None,
force_ssl: None,
prerender: None,
id: None,
deploy_hook: None,
password: None,
ssl_url: None,
account_name: None,
account_slug: None,
git_provider: None,
admin_url: None,
)
pub const dns_record_create = DnsRecordCreate(
port: None,
priority: None,
ttl: None,
flag: None,
value: None,
hostname: None,
weight: None,
type_: None,
tag: None,
)
pub const access_token = AccessToken(
user_email: None,
created_at: None,
user_id: None,
id: None,
access_token: None,
)
pub const service = Service(
environments: None,
created_at: None,
name: None,
slug: None,
service_path: None,
updated_at: None,
tags: None,
icon: None,
events: None,
long_description: None,
id: None,
description: None,
manifest_url: None,
)
pub const dns_zone = DnsZone(
records: None,
domain: None,
ipv6_enabled: None,
created_at: None,
name: None,
errors: None,
account_id: None,
dedicated: None,
user_id: None,
site_id: None,
updated_at: None,
dns_servers: None,
id: None,
supported_record_types: None,
account_name: None,
account_slug: None,
)
pub const asset_form = AssetForm(url: None, fields: None)
pub const plugin = Plugin(package: None, pinned_version: None)
pub const split_test_setup = SplitTestSetup(branch_tests: None)
pub const function_route = FunctionRoute(
literal: None,
pattern: None,
methods: None,
expression: None,
prefer_static: None,
)
pub const build_hook = BuildHook(
branch: None,
created_at: None,
url: None,
site_id: None,
title: None,
id: None,
)
pub const asset = Asset(
content_type: None,
size: None,
created_at: None,
name: None,
creator_id: None,
url: None,
state: None,
visibility: None,
site_id: None,
updated_at: None,
id: None,
key: None,
)
pub const deploy_files = DeployFiles(
draft: None,
branch: None,
functions_config: None,
function_schedules: None,
files: None,
framework_version: None,
functions: None,
async: None,
framework: None,
)
pub const account_setup = AccountSetup(
type_id: None,
payment_method_id: None,
period: None,
name: None,
extra_seats_block: None,
)
pub const metadata = Metadata
pub const function_schedule = FunctionSchedule(name: None, cron: None)
pub const build_setup = BuildSetup(clear_cache: None, image: None)
pub const account_add_member_setup = AccountAddMemberSetup(
role: None,
email: None,
)
pub const build = Build(
done: None,
error: None,
created_at: None,
sha: None,
deploy_id: None,
id: None,
)
pub const account_update_member_setup = AccountUpdateMemberSetup(
site_ids: None,
role: None,
site_access: None,
)
pub const account_usage_capability = AccountUsageCapability(
included: None,
used: None,
)
pub const submission = Submission(
body: None,
summary: None,
number: None,
created_at: None,
data: None,
name: None,
last_name: None,
site_url: None,
first_name: None,
id: None,
email: None,
company: None,
)
pub const ticket = Ticket(
created_at: None,
client_id: None,
id: None,
authorized: None,
)
pub const split_test = SplitTest(
path: None,
active: None,
created_at: None,
name: None,
branches: None,
site_id: None,
updated_at: None,
id: None,
unpublished_at: None,
)
pub const build_hook_setup = BuildHookSetup(branch: None, title: None)
pub const user = User(
last_login: None,
avatar_url: None,
created_at: None,
login_providers: None,
affiliate_id: None,
uid: None,
onboarding_progress: None,
site_count: None,
id: None,
full_name: None,
email: None,
)
pub const build_log_msg = BuildLogMsg(section: None, message: None, error: None)
pub const purge = Purge(site_slug: None, site_id: None, cache_tags: None)
pub const service_instance = ServiceInstance(
config: None,
created_at: None,
external_attributes: None,
env: None,
url: None,
service_path: None,
service_name: None,
service_slug: None,
snippets: None,
updated_at: None,
auth_url: None,
id: None,
)
pub const sni_certificate = SniCertificate(
created_at: None,
domains: None,
state: None,
updated_at: None,
expires_at: None,
)
pub const audit_log = AuditLog(account_id: None, payload: None, id: None)
pub const asset_signature = AssetSignature(form: None, asset: None)
pub const dns_zone_setup = DnsZoneSetup(
name: None,
site_id: None,
account_slug: None,
)
pub const error = Error(message: None, code: None)
pub const deployed_branch = DeployedBranch(
name: None,
slug: None,
url: None,
deploy_id: None,
id: None,
ssl_url: None,
)
pub const excluded_function_route = ExcludedFunctionRoute(
literal: None,
pattern: None,
expression: None,
)
pub const site = Site(
domain_aliases: None,
deploy_preview_custom_domain: None,
session_id: None,
id_domain: None,
notification_email: None,
managed_dns: None,
plan: None,
build_image: None,
created_at: None,
name: None,
ssl: None,
account_id: None,
url: None,
user_id: None,
processing_settings: None,
state: None,
custom_domain: None,
build_settings: None,
screenshot_url: None,
capabilities: None,
deploy_url: None,
updated_at: None,
branch_deploy_custom_domain: None,
default_hooks_data: None,
functions_region: None,
published_deploy: None,
force_ssl: None,
prerender: None,
id: None,
deploy_hook: None,
password: None,
ssl_url: None,
account_name: None,
account_slug: None,
git_provider: None,
admin_url: None,
)
pub const split_tests = []
pub const account_type = AccountType(
monthly_seats_addon_dollar_price: None,
yearly_seats_addon_dollar_price: None,
name: None,
capabilities: None,
monthly_dollar_price: None,
id: None,
yearly_dollar_price: None,
description: None,
)
pub const account_update_setup = AccountUpdateSetup(
type_id: None,
name: None,
slug: None,
extra_seats_block: None,
billing_name: None,
billing_email: None,
billing_details: None,
)
pub const payment_method = PaymentMethod(
method_name: None,
created_at: None,
data: None,
state: None,
updated_at: None,
type_: None,
id: None,
)
pub const traffic_rules_aggregate_config = TrafficRulesAggregateConfig(
keys: None,
)
pub const deploy = Deploy(
draft: None,
branch: None,
review_id: None,
published_at: None,
deploy_ssl_url: None,
commit_url: None,
review_url: None,
created_at: None,
locked: None,
commit_ref: None,
name: None,
build_id: None,
url: None,
context: None,
user_id: None,
error_message: None,
skipped: None,
state: None,
site_id: None,
function_schedules: None,
screenshot_url: None,
deploy_url: None,
updated_at: None,
title: None,
id: None,
required_functions: None,
ssl_url: None,
framework: None,
admin_url: None,
required: None,
)
pub const env_var_user = EnvVarUser(
avatar_url: None,
id: None,
full_name: None,
email: None,
)
pub const form = Form(
created_at: None,
name: None,
paths: None,
site_id: None,
fields: None,
id: None,
submission_count: None,
)
pub const account_membership = AccountMembership(
type_id: None,
payment_method_id: None,
billing_period: None,
roles_allowed: None,
created_at: None,
name: None,
slug: None,
owner_ids: None,
billing_name: None,
type_name: None,
capabilities: None,
updated_at: None,
billing_email: None,
type_: None,
id: None,
billing_details: None,
)
pub const traffic_rules_rate_limit_config = TrafficRulesRateLimitConfig(
window_limit: None,
algorithm: None,
window_size: None,
)
pub const hook = Hook(
created_at: None,
data: None,
site_id: None,
updated_at: None,
event: None,
type_: None,
id: None,
disabled: None,
)
pub const dev_server_hook_setup = DevServerHookSetup(
branch: None,
title: None,
type_: None,
)
pub const plugin_run_data = PluginRunData(
package: None,
summary: None,
reporting_event: None,
text: None,
state: None,
version: None,
title: None,
)
pub const repo_info = RepoInfo(
installation_id: None,
stop_builds: None,
repo_url: None,
allowed_branches: None,
public_repo: None,
functions_dir: None,
private_logs: None,
dir: None,
env: None,
repo_branch: None,
provider: None,
repo_path: None,
deploy_key_id: None,
cmd: None,
id: None,
)
pub const build_status = BuildStatus(
active: None,
pending_concurrency: None,
enqueued: None,
build_count: None,
minutes: None,
)
pub fn asset_public_signature_to_json(data: AssetPublicSignature) {
json.object([#("url", json.nullable(data.url, json.string))])
}
pub fn asset_public_signature_decoder() {
use url <- zero.field("url", zero.optional(zero.string))
zero.success(AssetPublicSignature(url: url))
}
pub fn site_function_to_json(data: SiteFunction) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("provider", json.nullable(data.provider, json.string)),
#("log_type", json.nullable(data.log_type, json.string)),
#("id", json.nullable(data.id, json.string)),
#("functions", json.null()),
])
}
pub fn site_function_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use provider <- zero.field("provider", zero.optional(zero.string))
use log_type <- zero.field("log_type", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use functions <- zero.field("functions", zero.optional(zero.success(Nil)))
zero.success(SiteFunction(
branch: branch,
created_at: created_at,
provider: provider,
log_type: log_type,
id: id,
functions: functions,
))
}
pub fn dns_zones_decoder() {
zero.list(dns_zone_decoder())
}
pub fn hook_type_to_json(data: HookType) {
json.object([
#("name", json.nullable(data.name, json.string)),
#("events", json.null()),
#("fields", json.null()),
])
}
pub fn hook_type_decoder() {
use name <- zero.field("name", zero.optional(zero.string))
use events <- zero.field("events", zero.optional(zero.list(zero.string)))
use fields <- zero.field("fields", zero.optional(zero.success(Nil)))
zero.success(HookType(name: name, events: events, fields: fields))
}
pub fn snippet_to_json(data: Snippet) {
json.object([
#("general_position", json.nullable(data.general_position, json.string)),
#("general", json.nullable(data.general, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("goal", json.nullable(data.goal, json.string)),
#("goal_position", json.nullable(data.goal_position, json.string)),
#("title", json.nullable(data.title, json.string)),
#("id", json.nullable(data.id, json.int)),
])
}
pub fn snippet_decoder() {
use general_position <- zero.field(
"general_position",
zero.optional(zero.string),
)
use general <- zero.field("general", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use goal <- zero.field("goal", zero.optional(zero.string))
use goal_position <- zero.field("goal_position", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.int))
zero.success(Snippet(
general_position: general_position,
general: general,
site_id: site_id,
goal: goal,
goal_position: goal_position,
title: title,
id: id,
))
}
pub fn file_to_json(data: File) {
json.object([
#("size", json.nullable(data.size, json.int)),
#("path", json.nullable(data.path, json.string)),
#("mime_type", json.nullable(data.mime_type, json.string)),
#("sha", json.nullable(data.sha, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn file_decoder() {
use size <- zero.field("size", zero.optional(zero.int))
use path <- zero.field("path", zero.optional(zero.string))
use mime_type <- zero.field("mime_type", zero.optional(zero.string))
use sha <- zero.field("sha", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(File(
size: size,
path: path,
mime_type: mime_type,
sha: sha,
id: id,
))
}
pub fn traffic_rules_config_to_json(data: TrafficRulesConfig) {
json.object([#("action", json.null())])
}
pub fn traffic_rules_config_decoder() {
use action <- zero.field("action", zero.optional(zero.success(Nil)))
zero.success(TrafficRulesConfig(action: action))
}
pub fn dev_server_hook_to_json(data: DevServerHook) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("url", json.nullable(data.url, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("title", json.nullable(data.title, json.string)),
#("type", json.nullable(data.type_, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn dev_server_hook_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(DevServerHook(
branch: branch,
created_at: created_at,
url: url,
site_id: site_id,
title: title,
type_: type_,
id: id,
))
}
pub fn env_var_to_json(data: EnvVar) {
json.object([
#("values", json.null()),
#("is_secret", json.nullable(data.is_secret, json.bool)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("updated_by", json.null()),
#("scopes", json.null()),
#("key", json.nullable(data.key, json.string)),
])
}
pub fn env_var_decoder() {
use values <- zero.field("values", zero.optional(zero.success(Nil)))
use is_secret <- zero.field("is_secret", zero.optional(zero.bool))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use updated_by <- zero.field("updated_by", zero.optional(zero.success(Nil)))
use scopes <- zero.field("scopes", zero.optional(zero.list(zero.string)))
use key <- zero.field("key", zero.optional(zero.string))
zero.success(EnvVar(
values: values,
is_secret: is_secret,
updated_at: updated_at,
updated_by: updated_by,
scopes: scopes,
key: key,
))
}
pub fn dns_record_to_json(data: DnsRecord) {
json.object([
#("priority", json.nullable(data.priority, json.int)),
#("ttl", json.nullable(data.ttl, json.int)),
#("flag", json.nullable(data.flag, json.int)),
#("value", json.nullable(data.value, json.string)),
#("hostname", json.nullable(data.hostname, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("dns_zone_id", json.nullable(data.dns_zone_id, json.string)),
#("type", json.nullable(data.type_, json.string)),
#("tag", json.nullable(data.tag, json.string)),
#("id", json.nullable(data.id, json.string)),
#("managed", json.nullable(data.managed, json.bool)),
])
}
pub fn dns_record_decoder() {
use priority <- zero.field("priority", zero.optional(zero.int))
use ttl <- zero.field("ttl", zero.optional(zero.int))
use flag <- zero.field("flag", zero.optional(zero.int))
use value <- zero.field("value", zero.optional(zero.string))
use hostname <- zero.field("hostname", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use dns_zone_id <- zero.field("dns_zone_id", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
use tag <- zero.field("tag", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use managed <- zero.field("managed", zero.optional(zero.bool))
zero.success(DnsRecord(
priority: priority,
ttl: ttl,
flag: flag,
value: value,
hostname: hostname,
site_id: site_id,
dns_zone_id: dns_zone_id,
type_: type_,
tag: tag,
id: id,
managed: managed,
))
}
pub fn member_to_json(data: Member) {
json.object([
#("role", json.nullable(data.role, json.string)),
#("avatar", json.nullable(data.avatar, json.string)),
#("id", json.nullable(data.id, json.string)),
#("full_name", json.nullable(data.full_name, json.string)),
#("email", json.nullable(data.email, json.string)),
])
}
pub fn member_decoder() {
use role <- zero.field("role", zero.optional(zero.string))
use avatar <- zero.field("avatar", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use full_name <- zero.field("full_name", zero.optional(zero.string))
use email <- zero.field("email", zero.optional(zero.string))
zero.success(Member(
role: role,
avatar: avatar,
id: id,
full_name: full_name,
email: email,
))
}
pub fn function_config_to_json(data: FunctionConfig) {
json.object([
#("priority", json.nullable(data.priority, json.int)),
#("display_name", json.nullable(data.display_name, json.string)),
#("routes", json.null()),
#("generator", json.nullable(data.generator, json.string)),
#("traffic_rules", json.null()),
#("build_data", json.null()),
#("excluded_routes", json.null()),
])
}
pub fn function_config_decoder() {
use priority <- zero.field("priority", zero.optional(zero.int))
use display_name <- zero.field("display_name", zero.optional(zero.string))
use routes <- zero.field("routes", zero.optional(zero.success(Nil)))
use generator <- zero.field("generator", zero.optional(zero.string))
use traffic_rules <- zero.field(
"traffic_rules",
zero.optional(zero.success(Nil)),
)
use build_data <- zero.field("build_data", zero.optional(zero.success(Nil)))
use excluded_routes <- zero.field(
"excluded_routes",
zero.optional(zero.success(Nil)),
)
zero.success(FunctionConfig(
priority: priority,
display_name: display_name,
routes: routes,
generator: generator,
traffic_rules: traffic_rules,
build_data: build_data,
excluded_routes: excluded_routes,
))
}
pub fn plugin_params_to_json(data: PluginParams) {
json.object([
#("pinned_version", json.nullable(data.pinned_version, json.string)),
])
}
pub fn plugin_params_decoder() {
use pinned_version <- zero.field("pinned_version", zero.optional(zero.string))
zero.success(PluginParams(pinned_version: pinned_version))
}
pub fn dns_records_decoder() {
zero.list(dns_record_decoder())
}
pub fn deploy_key_to_json(data: DeployKey) {
json.object([
#("public_key", json.nullable(data.public_key, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn deploy_key_decoder() {
use public_key <- zero.field("public_key", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(DeployKey(public_key: public_key, created_at: created_at, id: id))
}
pub fn function_to_json(data: Function) {
json.object([
#("name", json.nullable(data.name, json.string)),
#("sha", json.nullable(data.sha, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn function_decoder() {
use name <- zero.field("name", zero.optional(zero.string))
use sha <- zero.field("sha", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(Function(name: name, sha: sha, id: id))
}
pub fn dev_server_to_json(data: DevServer) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("live_at", json.nullable(data.live_at, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("error_at", json.nullable(data.error_at, json.string)),
#("url", json.nullable(data.url, json.string)),
#("done_at", json.nullable(data.done_at, json.string)),
#("state", json.nullable(data.state, json.string)),
#("starting_at", json.nullable(data.starting_at, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("title", json.nullable(data.title, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn dev_server_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use live_at <- zero.field("live_at", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use error_at <- zero.field("error_at", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use done_at <- zero.field("done_at", zero.optional(zero.string))
use state <- zero.field("state", zero.optional(zero.string))
use starting_at <- zero.field("starting_at", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(DevServer(
branch: branch,
live_at: live_at,
created_at: created_at,
error_at: error_at,
url: url,
done_at: done_at,
state: state,
starting_at: starting_at,
site_id: site_id,
updated_at: updated_at,
title: title,
id: id,
))
}
pub fn plugin_run_to_json(data: PluginRun) {
json.object([
#("package", json.nullable(data.package, json.string)),
#("summary", json.nullable(data.summary, json.string)),
#("reporting_event", json.nullable(data.reporting_event, json.string)),
#("text", json.nullable(data.text, json.string)),
#("state", json.nullable(data.state, json.string)),
#("deploy_id", json.nullable(data.deploy_id, json.string)),
#("version", json.nullable(data.version, json.string)),
#("title", json.nullable(data.title, json.string)),
])
}
pub fn plugin_run_decoder() {
use package <- zero.field("package", zero.optional(zero.string))
use summary <- zero.field("summary", zero.optional(zero.string))
use reporting_event <- zero.field(
"reporting_event",
zero.optional(zero.string),
)
use text <- zero.field("text", zero.optional(zero.string))
use state <- zero.field("state", zero.optional(zero.string))
use deploy_id <- zero.field("deploy_id", zero.optional(zero.string))
use version <- zero.field("version", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
zero.success(PluginRun(
package: package,
summary: summary,
reporting_event: reporting_event,
text: text,
state: state,
deploy_id: deploy_id,
version: version,
title: title,
))
}
pub fn env_var_value_to_json(data: EnvVarValue) {
json.object([
#("context", json.nullable(data.context, json.string)),
#("value", json.nullable(data.value, json.string)),
#("context_parameter", json.nullable(data.context_parameter, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn env_var_value_decoder() {
use context <- zero.field("context", zero.optional(zero.string))
use value <- zero.field("value", zero.optional(zero.string))
use context_parameter <- zero.field(
"context_parameter",
zero.optional(zero.string),
)
use id <- zero.field("id", zero.optional(zero.string))
zero.success(EnvVarValue(
context: context,
value: value,
context_parameter: context_parameter,
id: id,
))
}
pub fn site_setup_to_json(data: SiteSetup) {
json.object([
#("domain_aliases", json.null()),
#(
"deploy_preview_custom_domain",
json.nullable(data.deploy_preview_custom_domain, json.string),
),
#("session_id", json.nullable(data.session_id, json.string)),
#("id_domain", json.nullable(data.id_domain, json.string)),
#("notification_email", json.nullable(data.notification_email, json.string)),
#("managed_dns", json.nullable(data.managed_dns, json.bool)),
#("plan", json.nullable(data.plan, json.string)),
#("build_image", json.nullable(data.build_image, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("ssl", json.nullable(data.ssl, json.bool)),
#("account_id", json.nullable(data.account_id, json.string)),
#("url", json.nullable(data.url, json.string)),
#("user_id", json.nullable(data.user_id, json.string)),
#("processing_settings", json.null()),
#("state", json.nullable(data.state, json.string)),
#("custom_domain", json.nullable(data.custom_domain, json.string)),
#("repo", json.null()),
#("build_settings", json.null()),
#("screenshot_url", json.nullable(data.screenshot_url, json.string)),
#("capabilities", json.null()),
#("deploy_url", json.nullable(data.deploy_url, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#(
"branch_deploy_custom_domain",
json.nullable(data.branch_deploy_custom_domain, json.string),
),
#("default_hooks_data", json.null()),
#("functions_region", json.nullable(data.functions_region, json.string)),
#("published_deploy", json.null()),
#("force_ssl", json.nullable(data.force_ssl, json.bool)),
#("prerender", json.nullable(data.prerender, json.string)),
#("id", json.nullable(data.id, json.string)),
#("deploy_hook", json.nullable(data.deploy_hook, json.string)),
#("password", json.nullable(data.password, json.string)),
#("ssl_url", json.nullable(data.ssl_url, json.string)),
#("account_name", json.nullable(data.account_name, json.string)),
#("account_slug", json.nullable(data.account_slug, json.string)),
#("git_provider", json.nullable(data.git_provider, json.string)),
#("admin_url", json.nullable(data.admin_url, json.string)),
])
}
pub fn site_setup_decoder() {
use domain_aliases <- zero.field(
"domain_aliases",
zero.optional(zero.list(zero.string)),
)
use deploy_preview_custom_domain <- zero.field(
"deploy_preview_custom_domain",
zero.optional(zero.string),
)
use session_id <- zero.field("session_id", zero.optional(zero.string))
use id_domain <- zero.field("id_domain", zero.optional(zero.string))
use notification_email <- zero.field(
"notification_email",
zero.optional(zero.string),
)
use managed_dns <- zero.field("managed_dns", zero.optional(zero.bool))
use plan <- zero.field("plan", zero.optional(zero.string))
use build_image <- zero.field("build_image", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use ssl <- zero.field("ssl", zero.optional(zero.bool))
use account_id <- zero.field("account_id", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use user_id <- zero.field("user_id", zero.optional(zero.string))
use processing_settings <- zero.field(
"processing_settings",
zero.optional(zero.success(Nil)),
)
use state <- zero.field("state", zero.optional(zero.string))
use custom_domain <- zero.field("custom_domain", zero.optional(zero.string))
use repo <- zero.field("repo", zero.optional(zero.success(Nil)))
use build_settings <- zero.field(
"build_settings",
zero.optional(zero.success(Nil)),
)
use screenshot_url <- zero.field("screenshot_url", zero.optional(zero.string))
use capabilities <- zero.field(
"capabilities",
zero.optional(zero.success(Nil)),
)
use deploy_url <- zero.field("deploy_url", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use branch_deploy_custom_domain <- zero.field(
"branch_deploy_custom_domain",
zero.optional(zero.string),
)
use default_hooks_data <- zero.field(
"default_hooks_data",
zero.optional(zero.success(Nil)),
)
use functions_region <- zero.field(
"functions_region",
zero.optional(zero.string),
)
use published_deploy <- zero.field(
"published_deploy",
zero.optional(zero.success(Nil)),
)
use force_ssl <- zero.field("force_ssl", zero.optional(zero.bool))
use prerender <- zero.field("prerender", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use deploy_hook <- zero.field("deploy_hook", zero.optional(zero.string))
use password <- zero.field("password", zero.optional(zero.string))
use ssl_url <- zero.field("ssl_url", zero.optional(zero.string))
use account_name <- zero.field("account_name", zero.optional(zero.string))
use account_slug <- zero.field("account_slug", zero.optional(zero.string))
use git_provider <- zero.field("git_provider", zero.optional(zero.string))
use admin_url <- zero.field("admin_url", zero.optional(zero.string))
zero.success(SiteSetup(
domain_aliases: domain_aliases,
deploy_preview_custom_domain: deploy_preview_custom_domain,
session_id: session_id,
id_domain: id_domain,
notification_email: notification_email,
managed_dns: managed_dns,
plan: plan,
build_image: build_image,
created_at: created_at,
name: name,
ssl: ssl,
account_id: account_id,
url: url,
user_id: user_id,
processing_settings: processing_settings,
state: state,
custom_domain: custom_domain,
repo: repo,
build_settings: build_settings,
screenshot_url: screenshot_url,
capabilities: capabilities,
deploy_url: deploy_url,
updated_at: updated_at,
branch_deploy_custom_domain: branch_deploy_custom_domain,
default_hooks_data: default_hooks_data,
functions_region: functions_region,
published_deploy: published_deploy,
force_ssl: force_ssl,
prerender: prerender,
id: id,
deploy_hook: deploy_hook,
password: password,
ssl_url: ssl_url,
account_name: account_name,
account_slug: account_slug,
git_provider: git_provider,
admin_url: admin_url,
))
}
pub fn dns_record_create_to_json(data: DnsRecordCreate) {
json.object([
#("port", json.nullable(data.port, json.int)),
#("priority", json.nullable(data.priority, json.int)),
#("ttl", json.nullable(data.ttl, json.int)),
#("flag", json.nullable(data.flag, json.int)),
#("value", json.nullable(data.value, json.string)),
#("hostname", json.nullable(data.hostname, json.string)),
#("weight", json.nullable(data.weight, json.int)),
#("type", json.nullable(data.type_, json.string)),
#("tag", json.nullable(data.tag, json.string)),
])
}
pub fn dns_record_create_decoder() {
use port <- zero.field("port", zero.optional(zero.int))
use priority <- zero.field("priority", zero.optional(zero.int))
use ttl <- zero.field("ttl", zero.optional(zero.int))
use flag <- zero.field("flag", zero.optional(zero.int))
use value <- zero.field("value", zero.optional(zero.string))
use hostname <- zero.field("hostname", zero.optional(zero.string))
use weight <- zero.field("weight", zero.optional(zero.int))
use type_ <- zero.field("type", zero.optional(zero.string))
use tag <- zero.field("tag", zero.optional(zero.string))
zero.success(DnsRecordCreate(
port: port,
priority: priority,
ttl: ttl,
flag: flag,
value: value,
hostname: hostname,
weight: weight,
type_: type_,
tag: tag,
))
}
pub fn access_token_to_json(data: AccessToken) {
json.object([
#("user_email", json.nullable(data.user_email, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("user_id", json.nullable(data.user_id, json.string)),
#("id", json.nullable(data.id, json.string)),
#("access_token", json.nullable(data.access_token, json.string)),
])
}
pub fn access_token_decoder() {
use user_email <- zero.field("user_email", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use user_id <- zero.field("user_id", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use access_token <- zero.field("access_token", zero.optional(zero.string))
zero.success(AccessToken(
user_email: user_email,
created_at: created_at,
user_id: user_id,
id: id,
access_token: access_token,
))
}
pub fn service_to_json(data: Service) {
json.object([
#("environments", json.null()),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("slug", json.nullable(data.slug, json.string)),
#("service_path", json.nullable(data.service_path, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("tags", json.null()),
#("icon", json.nullable(data.icon, json.string)),
#("events", json.null()),
#("long_description", json.nullable(data.long_description, json.string)),
#("id", json.nullable(data.id, json.string)),
#("description", json.nullable(data.description, json.string)),
#("manifest_url", json.nullable(data.manifest_url, json.string)),
])
}
pub fn service_decoder() {
use environments <- zero.field(
"environments",
zero.optional(zero.list(zero.string)),
)
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use slug <- zero.field("slug", zero.optional(zero.string))
use service_path <- zero.field("service_path", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use tags <- zero.field("tags", zero.optional(zero.list(zero.string)))
use icon <- zero.field("icon", zero.optional(zero.string))
use events <- zero.field("events", zero.optional(zero.success(Nil)))
use long_description <- zero.field(
"long_description",
zero.optional(zero.string),
)
use id <- zero.field("id", zero.optional(zero.string))
use description <- zero.field("description", zero.optional(zero.string))
use manifest_url <- zero.field("manifest_url", zero.optional(zero.string))
zero.success(Service(
environments: environments,
created_at: created_at,
name: name,
slug: slug,
service_path: service_path,
updated_at: updated_at,
tags: tags,
icon: icon,
events: events,
long_description: long_description,
id: id,
description: description,
manifest_url: manifest_url,
))
}
pub fn dns_zone_to_json(data: DnsZone) {
json.object([
#("records", json.null()),
#("domain", json.nullable(data.domain, json.string)),
#("ipv6_enabled", json.nullable(data.ipv6_enabled, json.bool)),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("errors", json.null()),
#("account_id", json.nullable(data.account_id, json.string)),
#("dedicated", json.nullable(data.dedicated, json.bool)),
#("user_id", json.nullable(data.user_id, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("dns_servers", json.null()),
#("id", json.nullable(data.id, json.string)),
#("supported_record_types", json.null()),
#("account_name", json.nullable(data.account_name, json.string)),
#("account_slug", json.nullable(data.account_slug, json.string)),
])
}
pub fn dns_zone_decoder() {
use records <- zero.field("records", zero.optional(zero.success(Nil)))
use domain <- zero.field("domain", zero.optional(zero.string))
use ipv6_enabled <- zero.field("ipv6_enabled", zero.optional(zero.bool))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use errors <- zero.field("errors", zero.optional(zero.list(zero.string)))
use account_id <- zero.field("account_id", zero.optional(zero.string))
use dedicated <- zero.field("dedicated", zero.optional(zero.bool))
use user_id <- zero.field("user_id", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use dns_servers <- zero.field(
"dns_servers",
zero.optional(zero.list(zero.string)),
)
use id <- zero.field("id", zero.optional(zero.string))
use supported_record_types <- zero.field(
"supported_record_types",
zero.optional(zero.list(zero.string)),
)
use account_name <- zero.field("account_name", zero.optional(zero.string))
use account_slug <- zero.field("account_slug", zero.optional(zero.string))
zero.success(DnsZone(
records: records,
domain: domain,
ipv6_enabled: ipv6_enabled,
created_at: created_at,
name: name,
errors: errors,
account_id: account_id,
dedicated: dedicated,
user_id: user_id,
site_id: site_id,
updated_at: updated_at,
dns_servers: dns_servers,
id: id,
supported_record_types: supported_record_types,
account_name: account_name,
account_slug: account_slug,
))
}
pub fn asset_form_to_json(data: AssetForm) {
json.object([
#("url", json.nullable(data.url, json.string)),
#("fields", json.null()),
])
}
pub fn asset_form_decoder() {
use url <- zero.field("url", zero.optional(zero.string))
use fields <- zero.field("fields", zero.optional(zero.success(Nil)))
zero.success(AssetForm(url: url, fields: fields))
}
pub fn plugin_to_json(data: Plugin) {
json.object([
#("package", json.nullable(data.package, json.string)),
#("pinned_version", json.nullable(data.pinned_version, json.string)),
])
}
pub fn plugin_decoder() {
use package <- zero.field("package", zero.optional(zero.string))
use pinned_version <- zero.field("pinned_version", zero.optional(zero.string))
zero.success(Plugin(package: package, pinned_version: pinned_version))
}
pub fn split_test_setup_to_json(data: SplitTestSetup) {
json.object([#("branch_tests", json.null())])
}
pub fn split_test_setup_decoder() {
use branch_tests <- zero.field(
"branch_tests",
zero.optional(zero.success(Nil)),
)
zero.success(SplitTestSetup(branch_tests: branch_tests))
}
pub fn function_route_to_json(data: FunctionRoute) {
json.object([
#("literal", json.nullable(data.literal, json.string)),
#("pattern", json.nullable(data.pattern, json.string)),
#("methods", json.null()),
#("expression", json.nullable(data.expression, json.string)),
#("prefer_static", json.nullable(data.prefer_static, json.bool)),
])
}
pub fn function_route_decoder() {
use literal <- zero.field("literal", zero.optional(zero.string))
use pattern <- zero.field("pattern", zero.optional(zero.string))
use methods <- zero.field("methods", zero.optional(zero.list(zero.string)))
use expression <- zero.field("expression", zero.optional(zero.string))
use prefer_static <- zero.field("prefer_static", zero.optional(zero.bool))
zero.success(FunctionRoute(
literal: literal,
pattern: pattern,
methods: methods,
expression: expression,
prefer_static: prefer_static,
))
}
pub fn build_hook_to_json(data: BuildHook) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("url", json.nullable(data.url, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("title", json.nullable(data.title, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn build_hook_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(BuildHook(
branch: branch,
created_at: created_at,
url: url,
site_id: site_id,
title: title,
id: id,
))
}
pub fn asset_to_json(data: Asset) {
json.object([
#("content_type", json.nullable(data.content_type, json.string)),
#("size", json.nullable(data.size, json.int)),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("creator_id", json.nullable(data.creator_id, json.string)),
#("url", json.nullable(data.url, json.string)),
#("state", json.nullable(data.state, json.string)),
#("visibility", json.nullable(data.visibility, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("id", json.nullable(data.id, json.string)),
#("key", json.nullable(data.key, json.string)),
])
}
pub fn asset_decoder() {
use content_type <- zero.field("content_type", zero.optional(zero.string))
use size <- zero.field("size", zero.optional(zero.int))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use creator_id <- zero.field("creator_id", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use state <- zero.field("state", zero.optional(zero.string))
use visibility <- zero.field("visibility", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use key <- zero.field("key", zero.optional(zero.string))
zero.success(Asset(
content_type: content_type,
size: size,
created_at: created_at,
name: name,
creator_id: creator_id,
url: url,
state: state,
visibility: visibility,
site_id: site_id,
updated_at: updated_at,
id: id,
key: key,
))
}
pub fn deploy_files_to_json(data: DeployFiles) {
json.object([
#("draft", json.nullable(data.draft, json.bool)),
#("branch", json.nullable(data.branch, json.string)),
#("functions_config", json.null()),
#("function_schedules", json.null()),
#("files", json.null()),
#("framework_version", json.nullable(data.framework_version, json.string)),
#("functions", json.null()),
#("async", json.nullable(data.async, json.bool)),
#("framework", json.nullable(data.framework, json.string)),
])
}
pub fn deploy_files_decoder() {
use draft <- zero.field("draft", zero.optional(zero.bool))
use branch <- zero.field("branch", zero.optional(zero.string))
use functions_config <- zero.field(
"functions_config",
zero.optional(zero.success(Nil)),
)
use function_schedules <- zero.field(
"function_schedules",
zero.optional(zero.success(Nil)),
)
use files <- zero.field("files", zero.optional(zero.success(Nil)))
use framework_version <- zero.field(
"framework_version",
zero.optional(zero.string),
)
use functions <- zero.field("functions", zero.optional(zero.success(Nil)))
use async <- zero.field("async", zero.optional(zero.bool))
use framework <- zero.field("framework", zero.optional(zero.string))
zero.success(DeployFiles(
draft: draft,
branch: branch,
functions_config: functions_config,
function_schedules: function_schedules,
files: files,
framework_version: framework_version,
functions: functions,
async: async,
framework: framework,
))
}
pub fn account_setup_to_json(data: AccountSetup) {
json.object([
#("type_id", json.nullable(data.type_id, json.string)),
#("payment_method_id", json.nullable(data.payment_method_id, json.string)),
#("period", json.nullable(data.period, json.string)),
#("name", json.nullable(data.name, json.string)),
#("extra_seats_block", json.nullable(data.extra_seats_block, json.int)),
])
}
pub fn account_setup_decoder() {
use type_id <- zero.field("type_id", zero.optional(zero.string))
use payment_method_id <- zero.field(
"payment_method_id",
zero.optional(zero.string),
)
use period <- zero.field("period", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use extra_seats_block <- zero.field(
"extra_seats_block",
zero.optional(zero.int),
)
zero.success(AccountSetup(
type_id: type_id,
payment_method_id: payment_method_id,
period: period,
name: name,
extra_seats_block: extra_seats_block,
))
}
pub fn metadata_to_json(data: Metadata) {
json.object([])
}
pub fn metadata_decoder() {
zero.success(Metadata)
}
pub fn function_schedule_to_json(data: FunctionSchedule) {
json.object([
#("name", json.nullable(data.name, json.string)),
#("cron", json.nullable(data.cron, json.string)),
])
}
pub fn function_schedule_decoder() {
use name <- zero.field("name", zero.optional(zero.string))
use cron <- zero.field("cron", zero.optional(zero.string))
zero.success(FunctionSchedule(name: name, cron: cron))
}
pub fn build_setup_to_json(data: BuildSetup) {
json.object([
#("clear_cache", json.nullable(data.clear_cache, json.bool)),
#("image", json.nullable(data.image, json.string)),
])
}
pub fn build_setup_decoder() {
use clear_cache <- zero.field("clear_cache", zero.optional(zero.bool))
use image <- zero.field("image", zero.optional(zero.string))
zero.success(BuildSetup(clear_cache: clear_cache, image: image))
}
pub fn account_add_member_setup_to_json(data: AccountAddMemberSetup) {
json.object([
#("role", json.nullable(data.role, json.string)),
#("email", json.nullable(data.email, json.string)),
])
}
pub fn account_add_member_setup_decoder() {
use role <- zero.field("role", zero.optional(zero.string))
use email <- zero.field("email", zero.optional(zero.string))
zero.success(AccountAddMemberSetup(role: role, email: email))
}
pub fn build_to_json(data: Build) {
json.object([
#("done", json.nullable(data.done, json.bool)),
#("error", json.nullable(data.error, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("sha", json.nullable(data.sha, json.string)),
#("deploy_id", json.nullable(data.deploy_id, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn build_decoder() {
use done <- zero.field("done", zero.optional(zero.bool))
use error <- zero.field("error", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use sha <- zero.field("sha", zero.optional(zero.string))
use deploy_id <- zero.field("deploy_id", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(Build(
done: done,
error: error,
created_at: created_at,
sha: sha,
deploy_id: deploy_id,
id: id,
))
}
pub fn account_update_member_setup_to_json(data: AccountUpdateMemberSetup) {
json.object([
#("site_ids", json.null()),
#("role", json.nullable(data.role, json.string)),
#("site_access", json.nullable(data.site_access, json.string)),
])
}
pub fn account_update_member_setup_decoder() {
use site_ids <- zero.field("site_ids", zero.optional(zero.list(zero.string)))
use role <- zero.field("role", zero.optional(zero.string))
use site_access <- zero.field("site_access", zero.optional(zero.string))
zero.success(AccountUpdateMemberSetup(
site_ids: site_ids,
role: role,
site_access: site_access,
))
}
pub fn account_usage_capability_to_json(data: AccountUsageCapability) {
json.object([
#("included", json.nullable(data.included, json.int)),
#("used", json.nullable(data.used, json.int)),
])
}
pub fn account_usage_capability_decoder() {
use included <- zero.field("included", zero.optional(zero.int))
use used <- zero.field("used", zero.optional(zero.int))
zero.success(AccountUsageCapability(included: included, used: used))
}
pub fn submission_to_json(data: Submission) {
json.object([
#("body", json.nullable(data.body, json.string)),
#("summary", json.nullable(data.summary, json.string)),
#("number", json.nullable(data.number, json.int)),
#("created_at", json.nullable(data.created_at, json.string)),
#("data", json.null()),
#("name", json.nullable(data.name, json.string)),
#("last_name", json.nullable(data.last_name, json.string)),
#("site_url", json.nullable(data.site_url, json.string)),
#("first_name", json.nullable(data.first_name, json.string)),
#("id", json.nullable(data.id, json.string)),
#("email", json.nullable(data.email, json.string)),
#("company", json.nullable(data.company, json.string)),
])
}
pub fn submission_decoder() {
use body <- zero.field("body", zero.optional(zero.string))
use summary <- zero.field("summary", zero.optional(zero.string))
use number <- zero.field("number", zero.optional(zero.int))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use data <- zero.field("data", zero.optional(zero.success(Nil)))
use name <- zero.field("name", zero.optional(zero.string))
use last_name <- zero.field("last_name", zero.optional(zero.string))
use site_url <- zero.field("site_url", zero.optional(zero.string))
use first_name <- zero.field("first_name", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use email <- zero.field("email", zero.optional(zero.string))
use company <- zero.field("company", zero.optional(zero.string))
zero.success(Submission(
body: body,
summary: summary,
number: number,
created_at: created_at,
data: data,
name: name,
last_name: last_name,
site_url: site_url,
first_name: first_name,
id: id,
email: email,
company: company,
))
}
pub fn ticket_to_json(data: Ticket) {
json.object([
#("created_at", json.nullable(data.created_at, json.string)),
#("client_id", json.nullable(data.client_id, json.string)),
#("id", json.nullable(data.id, json.string)),
#("authorized", json.nullable(data.authorized, json.bool)),
])
}
pub fn ticket_decoder() {
use created_at <- zero.field("created_at", zero.optional(zero.string))
use client_id <- zero.field("client_id", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use authorized <- zero.field("authorized", zero.optional(zero.bool))
zero.success(Ticket(
created_at: created_at,
client_id: client_id,
id: id,
authorized: authorized,
))
}
pub fn split_test_to_json(data: SplitTest) {
json.object([
#("path", json.nullable(data.path, json.string)),
#("active", json.nullable(data.active, json.bool)),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("branches", json.null()),
#("site_id", json.nullable(data.site_id, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("id", json.nullable(data.id, json.string)),
#("unpublished_at", json.nullable(data.unpublished_at, json.string)),
])
}
pub fn split_test_decoder() {
use path <- zero.field("path", zero.optional(zero.string))
use active <- zero.field("active", zero.optional(zero.bool))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use branches <- zero.field("branches", zero.optional(zero.success(Nil)))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use unpublished_at <- zero.field("unpublished_at", zero.optional(zero.string))
zero.success(SplitTest(
path: path,
active: active,
created_at: created_at,
name: name,
branches: branches,
site_id: site_id,
updated_at: updated_at,
id: id,
unpublished_at: unpublished_at,
))
}
pub fn build_hook_setup_to_json(data: BuildHookSetup) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("title", json.nullable(data.title, json.string)),
])
}
pub fn build_hook_setup_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
zero.success(BuildHookSetup(branch: branch, title: title))
}
pub fn user_to_json(data: User) {
json.object([
#("last_login", json.nullable(data.last_login, json.string)),
#("avatar_url", json.nullable(data.avatar_url, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("login_providers", json.null()),
#("affiliate_id", json.nullable(data.affiliate_id, json.string)),
#("uid", json.nullable(data.uid, json.string)),
#("onboarding_progress", json.null()),
#("site_count", json.nullable(data.site_count, json.int)),
#("id", json.nullable(data.id, json.string)),
#("full_name", json.nullable(data.full_name, json.string)),
#("email", json.nullable(data.email, json.string)),
])
}
pub fn user_decoder() {
use last_login <- zero.field("last_login", zero.optional(zero.string))
use avatar_url <- zero.field("avatar_url", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use login_providers <- zero.field(
"login_providers",
zero.optional(zero.list(zero.string)),
)
use affiliate_id <- zero.field("affiliate_id", zero.optional(zero.string))
use uid <- zero.field("uid", zero.optional(zero.string))
use onboarding_progress <- zero.field(
"onboarding_progress",
zero.optional(zero.success(Nil)),
)
use site_count <- zero.field("site_count", zero.optional(zero.int))
use id <- zero.field("id", zero.optional(zero.string))
use full_name <- zero.field("full_name", zero.optional(zero.string))
use email <- zero.field("email", zero.optional(zero.string))
zero.success(User(
last_login: last_login,
avatar_url: avatar_url,
created_at: created_at,
login_providers: login_providers,
affiliate_id: affiliate_id,
uid: uid,
onboarding_progress: onboarding_progress,
site_count: site_count,
id: id,
full_name: full_name,
email: email,
))
}
pub fn build_log_msg_to_json(data: BuildLogMsg) {
json.object([
#("section", json.nullable(data.section, json.string)),
#("message", json.nullable(data.message, json.string)),
#("error", json.nullable(data.error, json.bool)),
])
}
pub fn build_log_msg_decoder() {
use section <- zero.field("section", zero.optional(zero.string))
use message <- zero.field("message", zero.optional(zero.string))
use error <- zero.field("error", zero.optional(zero.bool))
zero.success(BuildLogMsg(section: section, message: message, error: error))
}
pub fn purge_to_json(data: Purge) {
json.object([
#("site_slug", json.nullable(data.site_slug, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("cache_tags", json.null()),
])
}
pub fn purge_decoder() {
use site_slug <- zero.field("site_slug", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use cache_tags <- zero.field(
"cache_tags",
zero.optional(zero.list(zero.string)),
)
zero.success(Purge(
site_slug: site_slug,
site_id: site_id,
cache_tags: cache_tags,
))
}
pub fn service_instance_to_json(data: ServiceInstance) {
json.object([
#("config", json.null()),
#("created_at", json.nullable(data.created_at, json.string)),
#("external_attributes", json.null()),
#("env", json.null()),
#("url", json.nullable(data.url, json.string)),
#("service_path", json.nullable(data.service_path, json.string)),
#("service_name", json.nullable(data.service_name, json.string)),
#("service_slug", json.nullable(data.service_slug, json.string)),
#("snippets", json.null()),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("auth_url", json.nullable(data.auth_url, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn service_instance_decoder() {
use config <- zero.field("config", zero.optional(zero.success(Nil)))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use external_attributes <- zero.field(
"external_attributes",
zero.optional(zero.success(Nil)),
)
use env <- zero.field("env", zero.optional(zero.success(Nil)))
use url <- zero.field("url", zero.optional(zero.string))
use service_path <- zero.field("service_path", zero.optional(zero.string))
use service_name <- zero.field("service_name", zero.optional(zero.string))
use service_slug <- zero.field("service_slug", zero.optional(zero.string))
use snippets <- zero.field("snippets", zero.optional(zero.success(Nil)))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use auth_url <- zero.field("auth_url", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(ServiceInstance(
config: config,
created_at: created_at,
external_attributes: external_attributes,
env: env,
url: url,
service_path: service_path,
service_name: service_name,
service_slug: service_slug,
snippets: snippets,
updated_at: updated_at,
auth_url: auth_url,
id: id,
))
}
pub fn sni_certificate_to_json(data: SniCertificate) {
json.object([
#("created_at", json.nullable(data.created_at, json.string)),
#("domains", json.null()),
#("state", json.nullable(data.state, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("expires_at", json.nullable(data.expires_at, json.string)),
])
}
pub fn sni_certificate_decoder() {
use created_at <- zero.field("created_at", zero.optional(zero.string))
use domains <- zero.field("domains", zero.optional(zero.list(zero.string)))
use state <- zero.field("state", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use expires_at <- zero.field("expires_at", zero.optional(zero.string))
zero.success(SniCertificate(
created_at: created_at,
domains: domains,
state: state,
updated_at: updated_at,
expires_at: expires_at,
))
}
pub fn audit_log_to_json(data: AuditLog) {
json.object([
#("account_id", json.nullable(data.account_id, json.string)),
#("payload", json.null()),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn audit_log_decoder() {
use account_id <- zero.field("account_id", zero.optional(zero.string))
use payload <- zero.field("payload", zero.optional(zero.success(Nil)))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(AuditLog(account_id: account_id, payload: payload, id: id))
}
pub fn asset_signature_to_json(data: AssetSignature) {
json.object([#("form", json.null()), #("asset", json.null())])
}
pub fn asset_signature_decoder() {
use form <- zero.field("form", zero.optional(zero.success(Nil)))
use asset <- zero.field("asset", zero.optional(zero.success(Nil)))
zero.success(AssetSignature(form: form, asset: asset))
}
pub fn dns_zone_setup_to_json(data: DnsZoneSetup) {
json.object([
#("name", json.nullable(data.name, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("account_slug", json.nullable(data.account_slug, json.string)),
])
}
pub fn dns_zone_setup_decoder() {
use name <- zero.field("name", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use account_slug <- zero.field("account_slug", zero.optional(zero.string))
zero.success(DnsZoneSetup(
name: name,
site_id: site_id,
account_slug: account_slug,
))
}
pub fn error_to_json(data: Error) {
json.object([
#("message", json.nullable(data.message, json.string)),
#("code", json.nullable(data.code, json.int)),
])
}
pub fn error_decoder() {
use message <- zero.field("message", zero.optional(zero.string))
use code <- zero.field("code", zero.optional(zero.int))
zero.success(Error(message: message, code: code))
}
pub fn deployed_branch_to_json(data: DeployedBranch) {
json.object([
#("name", json.nullable(data.name, json.string)),
#("slug", json.nullable(data.slug, json.string)),
#("url", json.nullable(data.url, json.string)),
#("deploy_id", json.nullable(data.deploy_id, json.string)),
#("id", json.nullable(data.id, json.string)),
#("ssl_url", json.nullable(data.ssl_url, json.string)),
])
}
pub fn deployed_branch_decoder() {
use name <- zero.field("name", zero.optional(zero.string))
use slug <- zero.field("slug", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use deploy_id <- zero.field("deploy_id", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use ssl_url <- zero.field("ssl_url", zero.optional(zero.string))
zero.success(DeployedBranch(
name: name,
slug: slug,
url: url,
deploy_id: deploy_id,
id: id,
ssl_url: ssl_url,
))
}
pub fn excluded_function_route_to_json(data: ExcludedFunctionRoute) {
json.object([
#("literal", json.nullable(data.literal, json.string)),
#("pattern", json.nullable(data.pattern, json.string)),
#("expression", json.nullable(data.expression, json.string)),
])
}
pub fn excluded_function_route_decoder() {
use literal <- zero.field("literal", zero.optional(zero.string))
use pattern <- zero.field("pattern", zero.optional(zero.string))
use expression <- zero.field("expression", zero.optional(zero.string))
zero.success(ExcludedFunctionRoute(
literal: literal,
pattern: pattern,
expression: expression,
))
}
pub fn site_to_json(data: Site) {
json.object([
#("domain_aliases", json.null()),
#(
"deploy_preview_custom_domain",
json.nullable(data.deploy_preview_custom_domain, json.string),
),
#("session_id", json.nullable(data.session_id, json.string)),
#("id_domain", json.nullable(data.id_domain, json.string)),
#("notification_email", json.nullable(data.notification_email, json.string)),
#("managed_dns", json.nullable(data.managed_dns, json.bool)),
#("plan", json.nullable(data.plan, json.string)),
#("build_image", json.nullable(data.build_image, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("ssl", json.nullable(data.ssl, json.bool)),
#("account_id", json.nullable(data.account_id, json.string)),
#("url", json.nullable(data.url, json.string)),
#("user_id", json.nullable(data.user_id, json.string)),
#("processing_settings", json.null()),
#("state", json.nullable(data.state, json.string)),
#("custom_domain", json.nullable(data.custom_domain, json.string)),
#("build_settings", json.null()),
#("screenshot_url", json.nullable(data.screenshot_url, json.string)),
#("capabilities", json.null()),
#("deploy_url", json.nullable(data.deploy_url, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#(
"branch_deploy_custom_domain",
json.nullable(data.branch_deploy_custom_domain, json.string),
),
#("default_hooks_data", json.null()),
#("functions_region", json.nullable(data.functions_region, json.string)),
#("published_deploy", json.null()),
#("force_ssl", json.nullable(data.force_ssl, json.bool)),
#("prerender", json.nullable(data.prerender, json.string)),
#("id", json.nullable(data.id, json.string)),
#("deploy_hook", json.nullable(data.deploy_hook, json.string)),
#("password", json.nullable(data.password, json.string)),
#("ssl_url", json.nullable(data.ssl_url, json.string)),
#("account_name", json.nullable(data.account_name, json.string)),
#("account_slug", json.nullable(data.account_slug, json.string)),
#("git_provider", json.nullable(data.git_provider, json.string)),
#("admin_url", json.nullable(data.admin_url, json.string)),
])
}
pub fn site_decoder() {
use domain_aliases <- zero.field(
"domain_aliases",
zero.optional(zero.list(zero.string)),
)
use deploy_preview_custom_domain <- zero.field(
"deploy_preview_custom_domain",
zero.optional(zero.string),
)
use session_id <- zero.field("session_id", zero.optional(zero.string))
use id_domain <- zero.field("id_domain", zero.optional(zero.string))
use notification_email <- zero.field(
"notification_email",
zero.optional(zero.string),
)
use managed_dns <- zero.field("managed_dns", zero.optional(zero.bool))
use plan <- zero.field("plan", zero.optional(zero.string))
use build_image <- zero.field("build_image", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use ssl <- zero.field("ssl", zero.optional(zero.bool))
use account_id <- zero.field("account_id", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use user_id <- zero.field("user_id", zero.optional(zero.string))
use processing_settings <- zero.field(
"processing_settings",
zero.optional(zero.success(Nil)),
)
use state <- zero.field("state", zero.optional(zero.string))
use custom_domain <- zero.field("custom_domain", zero.optional(zero.string))
use build_settings <- zero.field(
"build_settings",
zero.optional(zero.success(Nil)),
)
use screenshot_url <- zero.field("screenshot_url", zero.optional(zero.string))
use capabilities <- zero.field(
"capabilities",
zero.optional(zero.success(Nil)),
)
use deploy_url <- zero.field("deploy_url", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use branch_deploy_custom_domain <- zero.field(
"branch_deploy_custom_domain",
zero.optional(zero.string),
)
use default_hooks_data <- zero.field(
"default_hooks_data",
zero.optional(zero.success(Nil)),
)
use functions_region <- zero.field(
"functions_region",
zero.optional(zero.string),
)
use published_deploy <- zero.field(
"published_deploy",
zero.optional(zero.success(Nil)),
)
use force_ssl <- zero.field("force_ssl", zero.optional(zero.bool))
use prerender <- zero.field("prerender", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use deploy_hook <- zero.field("deploy_hook", zero.optional(zero.string))
use password <- zero.field("password", zero.optional(zero.string))
use ssl_url <- zero.field("ssl_url", zero.optional(zero.string))
use account_name <- zero.field("account_name", zero.optional(zero.string))
use account_slug <- zero.field("account_slug", zero.optional(zero.string))
use git_provider <- zero.field("git_provider", zero.optional(zero.string))
use admin_url <- zero.field("admin_url", zero.optional(zero.string))
zero.success(Site(
domain_aliases: domain_aliases,
deploy_preview_custom_domain: deploy_preview_custom_domain,
session_id: session_id,
id_domain: id_domain,
notification_email: notification_email,
managed_dns: managed_dns,
plan: plan,
build_image: build_image,
created_at: created_at,
name: name,
ssl: ssl,
account_id: account_id,
url: url,
user_id: user_id,
processing_settings: processing_settings,
state: state,
custom_domain: custom_domain,
build_settings: build_settings,
screenshot_url: screenshot_url,
capabilities: capabilities,
deploy_url: deploy_url,
updated_at: updated_at,
branch_deploy_custom_domain: branch_deploy_custom_domain,
default_hooks_data: default_hooks_data,
functions_region: functions_region,
published_deploy: published_deploy,
force_ssl: force_ssl,
prerender: prerender,
id: id,
deploy_hook: deploy_hook,
password: password,
ssl_url: ssl_url,
account_name: account_name,
account_slug: account_slug,
git_provider: git_provider,
admin_url: admin_url,
))
}
pub fn split_tests_decoder() {
zero.list(split_test_decoder())
}
pub fn account_type_to_json(data: AccountType) {
json.object([
#(
"monthly_seats_addon_dollar_price",
json.nullable(data.monthly_seats_addon_dollar_price, json.int),
),
#(
"yearly_seats_addon_dollar_price",
json.nullable(data.yearly_seats_addon_dollar_price, json.int),
),
#("name", json.nullable(data.name, json.string)),
#("capabilities", json.null()),
#(
"monthly_dollar_price",
json.nullable(data.monthly_dollar_price, json.int),
),
#("id", json.nullable(data.id, json.string)),
#("yearly_dollar_price", json.nullable(data.yearly_dollar_price, json.int)),
#("description", json.nullable(data.description, json.string)),
])
}
pub fn account_type_decoder() {
use monthly_seats_addon_dollar_price <- zero.field(
"monthly_seats_addon_dollar_price",
zero.optional(zero.int),
)
use yearly_seats_addon_dollar_price <- zero.field(
"yearly_seats_addon_dollar_price",
zero.optional(zero.int),
)
use name <- zero.field("name", zero.optional(zero.string))
use capabilities <- zero.field(
"capabilities",
zero.optional(zero.success(Nil)),
)
use monthly_dollar_price <- zero.field(
"monthly_dollar_price",
zero.optional(zero.int),
)
use id <- zero.field("id", zero.optional(zero.string))
use yearly_dollar_price <- zero.field(
"yearly_dollar_price",
zero.optional(zero.int),
)
use description <- zero.field("description", zero.optional(zero.string))
zero.success(AccountType(
monthly_seats_addon_dollar_price: monthly_seats_addon_dollar_price,
yearly_seats_addon_dollar_price: yearly_seats_addon_dollar_price,
name: name,
capabilities: capabilities,
monthly_dollar_price: monthly_dollar_price,
id: id,
yearly_dollar_price: yearly_dollar_price,
description: description,
))
}
pub fn account_update_setup_to_json(data: AccountUpdateSetup) {
json.object([
#("type_id", json.nullable(data.type_id, json.string)),
#("name", json.nullable(data.name, json.string)),
#("slug", json.nullable(data.slug, json.string)),
#("extra_seats_block", json.nullable(data.extra_seats_block, json.int)),
#("billing_name", json.nullable(data.billing_name, json.string)),
#("billing_email", json.nullable(data.billing_email, json.string)),
#("billing_details", json.nullable(data.billing_details, json.string)),
])
}
pub fn account_update_setup_decoder() {
use type_id <- zero.field("type_id", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use slug <- zero.field("slug", zero.optional(zero.string))
use extra_seats_block <- zero.field(
"extra_seats_block",
zero.optional(zero.int),
)
use billing_name <- zero.field("billing_name", zero.optional(zero.string))
use billing_email <- zero.field("billing_email", zero.optional(zero.string))
use billing_details <- zero.field(
"billing_details",
zero.optional(zero.string),
)
zero.success(AccountUpdateSetup(
type_id: type_id,
name: name,
slug: slug,
extra_seats_block: extra_seats_block,
billing_name: billing_name,
billing_email: billing_email,
billing_details: billing_details,
))
}
pub fn payment_method_to_json(data: PaymentMethod) {
json.object([
#("method_name", json.nullable(data.method_name, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("data", json.null()),
#("state", json.nullable(data.state, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("type", json.nullable(data.type_, json.string)),
#("id", json.nullable(data.id, json.string)),
])
}
pub fn payment_method_decoder() {
use method_name <- zero.field("method_name", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use data <- zero.field("data", zero.optional(zero.success(Nil)))
use state <- zero.field("state", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
zero.success(PaymentMethod(
method_name: method_name,
created_at: created_at,
data: data,
state: state,
updated_at: updated_at,
type_: type_,
id: id,
))
}
pub fn traffic_rules_aggregate_config_to_json(data: TrafficRulesAggregateConfig) {
json.object([#("keys", json.null())])
}
pub fn traffic_rules_aggregate_config_decoder() {
use keys <- zero.field("keys", zero.optional(zero.success(Nil)))
zero.success(TrafficRulesAggregateConfig(keys: keys))
}
pub fn deploy_to_json(data: Deploy) {
json.object([
#("draft", json.nullable(data.draft, json.bool)),
#("branch", json.nullable(data.branch, json.string)),
#("review_id", json.nullable(data.review_id, json.float)),
#("published_at", json.nullable(data.published_at, json.string)),
#("deploy_ssl_url", json.nullable(data.deploy_ssl_url, json.string)),
#("commit_url", json.nullable(data.commit_url, json.string)),
#("review_url", json.nullable(data.review_url, json.string)),
#("created_at", json.nullable(data.created_at, json.string)),
#("locked", json.nullable(data.locked, json.bool)),
#("commit_ref", json.nullable(data.commit_ref, json.string)),
#("name", json.nullable(data.name, json.string)),
#("build_id", json.nullable(data.build_id, json.string)),
#("url", json.nullable(data.url, json.string)),
#("context", json.nullable(data.context, json.string)),
#("user_id", json.nullable(data.user_id, json.string)),
#("error_message", json.nullable(data.error_message, json.string)),
#("skipped", json.nullable(data.skipped, json.bool)),
#("state", json.nullable(data.state, json.string)),
#("site_id", json.nullable(data.site_id, json.string)),
#("function_schedules", json.null()),
#("screenshot_url", json.nullable(data.screenshot_url, json.string)),
#("deploy_url", json.nullable(data.deploy_url, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("title", json.nullable(data.title, json.string)),
#("id", json.nullable(data.id, json.string)),
#("required_functions", json.null()),
#("ssl_url", json.nullable(data.ssl_url, json.string)),
#("framework", json.nullable(data.framework, json.string)),
#("admin_url", json.nullable(data.admin_url, json.string)),
#("required", json.null()),
])
}
pub fn deploy_decoder() {
use draft <- zero.field("draft", zero.optional(zero.bool))
use branch <- zero.field("branch", zero.optional(zero.string))
use review_id <- zero.field("review_id", zero.optional(zero.float))
use published_at <- zero.field("published_at", zero.optional(zero.string))
use deploy_ssl_url <- zero.field("deploy_ssl_url", zero.optional(zero.string))
use commit_url <- zero.field("commit_url", zero.optional(zero.string))
use review_url <- zero.field("review_url", zero.optional(zero.string))
use created_at <- zero.field("created_at", zero.optional(zero.string))
use locked <- zero.field("locked", zero.optional(zero.bool))
use commit_ref <- zero.field("commit_ref", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use build_id <- zero.field("build_id", zero.optional(zero.string))
use url <- zero.field("url", zero.optional(zero.string))
use context <- zero.field("context", zero.optional(zero.string))
use user_id <- zero.field("user_id", zero.optional(zero.string))
use error_message <- zero.field("error_message", zero.optional(zero.string))
use skipped <- zero.field("skipped", zero.optional(zero.bool))
use state <- zero.field("state", zero.optional(zero.string))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use function_schedules <- zero.field(
"function_schedules",
zero.optional(zero.success(Nil)),
)
use screenshot_url <- zero.field("screenshot_url", zero.optional(zero.string))
use deploy_url <- zero.field("deploy_url", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use required_functions <- zero.field(
"required_functions",
zero.optional(zero.list(zero.string)),
)
use ssl_url <- zero.field("ssl_url", zero.optional(zero.string))
use framework <- zero.field("framework", zero.optional(zero.string))
use admin_url <- zero.field("admin_url", zero.optional(zero.string))
use required <- zero.field("required", zero.optional(zero.list(zero.string)))
zero.success(Deploy(
draft: draft,
branch: branch,
review_id: review_id,
published_at: published_at,
deploy_ssl_url: deploy_ssl_url,
commit_url: commit_url,
review_url: review_url,
created_at: created_at,
locked: locked,
commit_ref: commit_ref,
name: name,
build_id: build_id,
url: url,
context: context,
user_id: user_id,
error_message: error_message,
skipped: skipped,
state: state,
site_id: site_id,
function_schedules: function_schedules,
screenshot_url: screenshot_url,
deploy_url: deploy_url,
updated_at: updated_at,
title: title,
id: id,
required_functions: required_functions,
ssl_url: ssl_url,
framework: framework,
admin_url: admin_url,
required: required,
))
}
pub fn env_var_user_to_json(data: EnvVarUser) {
json.object([
#("avatar_url", json.nullable(data.avatar_url, json.string)),
#("id", json.nullable(data.id, json.string)),
#("full_name", json.nullable(data.full_name, json.string)),
#("email", json.nullable(data.email, json.string)),
])
}
pub fn env_var_user_decoder() {
use avatar_url <- zero.field("avatar_url", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use full_name <- zero.field("full_name", zero.optional(zero.string))
use email <- zero.field("email", zero.optional(zero.string))
zero.success(EnvVarUser(
avatar_url: avatar_url,
id: id,
full_name: full_name,
email: email,
))
}
pub fn form_to_json(data: Form) {
json.object([
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("paths", json.null()),
#("site_id", json.nullable(data.site_id, json.string)),
#("fields", json.null()),
#("id", json.nullable(data.id, json.string)),
#("submission_count", json.nullable(data.submission_count, json.int)),
])
}
pub fn form_decoder() {
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use paths <- zero.field("paths", zero.optional(zero.list(zero.string)))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use fields <- zero.field("fields", zero.optional(zero.success(Nil)))
use id <- zero.field("id", zero.optional(zero.string))
use submission_count <- zero.field(
"submission_count",
zero.optional(zero.int),
)
zero.success(Form(
created_at: created_at,
name: name,
paths: paths,
site_id: site_id,
fields: fields,
id: id,
submission_count: submission_count,
))
}
pub fn account_membership_to_json(data: AccountMembership) {
json.object([
#("type_id", json.nullable(data.type_id, json.string)),
#("payment_method_id", json.nullable(data.payment_method_id, json.string)),
#("billing_period", json.nullable(data.billing_period, json.string)),
#("roles_allowed", json.null()),
#("created_at", json.nullable(data.created_at, json.string)),
#("name", json.nullable(data.name, json.string)),
#("slug", json.nullable(data.slug, json.string)),
#("owner_ids", json.null()),
#("billing_name", json.nullable(data.billing_name, json.string)),
#("type_name", json.nullable(data.type_name, json.string)),
#("capabilities", json.null()),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("billing_email", json.nullable(data.billing_email, json.string)),
#("type", json.nullable(data.type_, json.string)),
#("id", json.nullable(data.id, json.string)),
#("billing_details", json.nullable(data.billing_details, json.string)),
])
}
pub fn account_membership_decoder() {
use type_id <- zero.field("type_id", zero.optional(zero.string))
use payment_method_id <- zero.field(
"payment_method_id",
zero.optional(zero.string),
)
use billing_period <- zero.field("billing_period", zero.optional(zero.string))
use roles_allowed <- zero.field(
"roles_allowed",
zero.optional(zero.list(zero.string)),
)
use created_at <- zero.field("created_at", zero.optional(zero.string))
use name <- zero.field("name", zero.optional(zero.string))
use slug <- zero.field("slug", zero.optional(zero.string))
use owner_ids <- zero.field(
"owner_ids",
zero.optional(zero.list(zero.string)),
)
use billing_name <- zero.field("billing_name", zero.optional(zero.string))
use type_name <- zero.field("type_name", zero.optional(zero.string))
use capabilities <- zero.field(
"capabilities",
zero.optional(zero.success(Nil)),
)
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use billing_email <- zero.field("billing_email", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use billing_details <- zero.field(
"billing_details",
zero.optional(zero.string),
)
zero.success(AccountMembership(
type_id: type_id,
payment_method_id: payment_method_id,
billing_period: billing_period,
roles_allowed: roles_allowed,
created_at: created_at,
name: name,
slug: slug,
owner_ids: owner_ids,
billing_name: billing_name,
type_name: type_name,
capabilities: capabilities,
updated_at: updated_at,
billing_email: billing_email,
type_: type_,
id: id,
billing_details: billing_details,
))
}
pub fn traffic_rules_rate_limit_config_to_json(
data: TrafficRulesRateLimitConfig,
) {
json.object([
#("window_limit", json.nullable(data.window_limit, json.int)),
#("algorithm", json.nullable(data.algorithm, json.string)),
#("window_size", json.nullable(data.window_size, json.int)),
])
}
pub fn traffic_rules_rate_limit_config_decoder() {
use window_limit <- zero.field("window_limit", zero.optional(zero.int))
use algorithm <- zero.field("algorithm", zero.optional(zero.string))
use window_size <- zero.field("window_size", zero.optional(zero.int))
zero.success(TrafficRulesRateLimitConfig(
window_limit: window_limit,
algorithm: algorithm,
window_size: window_size,
))
}
pub fn hook_to_json(data: Hook) {
json.object([
#("created_at", json.nullable(data.created_at, json.string)),
#("data", json.null()),
#("site_id", json.nullable(data.site_id, json.string)),
#("updated_at", json.nullable(data.updated_at, json.string)),
#("event", json.nullable(data.event, json.string)),
#("type", json.nullable(data.type_, json.string)),
#("id", json.nullable(data.id, json.string)),
#("disabled", json.nullable(data.disabled, json.bool)),
])
}
pub fn hook_decoder() {
use created_at <- zero.field("created_at", zero.optional(zero.string))
use data <- zero.field("data", zero.optional(zero.success(Nil)))
use site_id <- zero.field("site_id", zero.optional(zero.string))
use updated_at <- zero.field("updated_at", zero.optional(zero.string))
use event <- zero.field("event", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.string))
use disabled <- zero.field("disabled", zero.optional(zero.bool))
zero.success(Hook(
created_at: created_at,
data: data,
site_id: site_id,
updated_at: updated_at,
event: event,
type_: type_,
id: id,
disabled: disabled,
))
}
pub fn dev_server_hook_setup_to_json(data: DevServerHookSetup) {
json.object([
#("branch", json.nullable(data.branch, json.string)),
#("title", json.nullable(data.title, json.string)),
#("type", json.nullable(data.type_, json.string)),
])
}
pub fn dev_server_hook_setup_decoder() {
use branch <- zero.field("branch", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
use type_ <- zero.field("type", zero.optional(zero.string))
zero.success(DevServerHookSetup(branch: branch, title: title, type_: type_))
}
pub fn plugin_run_data_to_json(data: PluginRunData) {
json.object([
#("package", json.nullable(data.package, json.string)),
#("summary", json.nullable(data.summary, json.string)),
#("reporting_event", json.nullable(data.reporting_event, json.string)),
#("text", json.nullable(data.text, json.string)),
#("state", json.nullable(data.state, json.string)),
#("version", json.nullable(data.version, json.string)),
#("title", json.nullable(data.title, json.string)),
])
}
pub fn plugin_run_data_decoder() {
use package <- zero.field("package", zero.optional(zero.string))
use summary <- zero.field("summary", zero.optional(zero.string))
use reporting_event <- zero.field(
"reporting_event",
zero.optional(zero.string),
)
use text <- zero.field("text", zero.optional(zero.string))
use state <- zero.field("state", zero.optional(zero.string))
use version <- zero.field("version", zero.optional(zero.string))
use title <- zero.field("title", zero.optional(zero.string))
zero.success(PluginRunData(
package: package,
summary: summary,
reporting_event: reporting_event,
text: text,
state: state,
version: version,
title: title,
))
}
pub fn repo_info_to_json(data: RepoInfo) {
json.object([
#("installation_id", json.nullable(data.installation_id, json.int)),
#("stop_builds", json.nullable(data.stop_builds, json.bool)),
#("repo_url", json.nullable(data.repo_url, json.string)),
#("allowed_branches", json.null()),
#("public_repo", json.nullable(data.public_repo, json.bool)),
#("functions_dir", json.nullable(data.functions_dir, json.string)),
#("private_logs", json.nullable(data.private_logs, json.bool)),
#("dir", json.nullable(data.dir, json.string)),
#("env", json.null()),
#("repo_branch", json.nullable(data.repo_branch, json.string)),
#("provider", json.nullable(data.provider, json.string)),
#("repo_path", json.nullable(data.repo_path, json.string)),
#("deploy_key_id", json.nullable(data.deploy_key_id, json.string)),
#("cmd", json.nullable(data.cmd, json.string)),
#("id", json.nullable(data.id, json.int)),
])
}
pub fn repo_info_decoder() {
use installation_id <- zero.field("installation_id", zero.optional(zero.int))
use stop_builds <- zero.field("stop_builds", zero.optional(zero.bool))
use repo_url <- zero.field("repo_url", zero.optional(zero.string))
use allowed_branches <- zero.field(
"allowed_branches",
zero.optional(zero.list(zero.string)),
)
use public_repo <- zero.field("public_repo", zero.optional(zero.bool))
use functions_dir <- zero.field("functions_dir", zero.optional(zero.string))
use private_logs <- zero.field("private_logs", zero.optional(zero.bool))
use dir <- zero.field("dir", zero.optional(zero.string))
use env <- zero.field("env", zero.optional(zero.success(Nil)))
use repo_branch <- zero.field("repo_branch", zero.optional(zero.string))
use provider <- zero.field("provider", zero.optional(zero.string))
use repo_path <- zero.field("repo_path", zero.optional(zero.string))
use deploy_key_id <- zero.field("deploy_key_id", zero.optional(zero.string))
use cmd <- zero.field("cmd", zero.optional(zero.string))
use id <- zero.field("id", zero.optional(zero.int))
zero.success(RepoInfo(
installation_id: installation_id,
stop_builds: stop_builds,
repo_url: repo_url,
allowed_branches: allowed_branches,
public_repo: public_repo,
functions_dir: functions_dir,
private_logs: private_logs,
dir: dir,
env: env,
repo_branch: repo_branch,
provider: provider,
repo_path: repo_path,
deploy_key_id: deploy_key_id,
cmd: cmd,
id: id,
))
}
pub fn build_status_to_json(data: BuildStatus) {
json.object([
#("active", json.nullable(data.active, json.int)),
#("pending_concurrency", json.nullable(data.pending_concurrency, json.int)),
#("enqueued", json.nullable(data.enqueued, json.int)),
#("build_count", json.nullable(data.build_count, json.int)),
#("minutes", json.null()),
])
}
pub fn build_status_decoder() {
use active <- zero.field("active", zero.optional(zero.int))
use pending_concurrency <- zero.field(
"pending_concurrency",
zero.optional(zero.int),
)
use enqueued <- zero.field("enqueued", zero.optional(zero.int))
use build_count <- zero.field("build_count", zero.optional(zero.int))
use minutes <- zero.field("minutes", zero.optional(zero.success(Nil)))
zero.success(BuildStatus(
active: active,
pending_concurrency: pending_concurrency,
enqueued: enqueued,
build_count: build_count,
minutes: minutes,
))
}