schema.deployment.rnc Maven / Gradle / Ivy
# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
# RELAX NG Compact Syntax
# Vespa Deployment file
include "common.rnc"
start = element deployment {
attribute version { "1.0" } &
attribute major-version { text }? &
attribute athenz-domain { xsd:string }? &
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
Step &
Dev?
}
Step =
StepExceptInstance &
Instance*
StepExceptInstance =
Delay* &
ParallelInstances* &
Upgrade? &
BlockChange* &
Notifications? &
Endpoints? &
Bcp? &
Test? &
Staging? &
Prod*
PrimitiveStep =
Delay* &
Region* &
ProdTest*
Instance = element instance {
attribute id { xsd:string } &
attribute tags { xsd:string }? &
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
StepExceptInstance
}
ParallelSteps = element parallel {
SerialSteps* &
PrimitiveStep*
}
SerialSteps = element steps {
ParallelSteps* &
PrimitiveStep*
}
ParallelInstances = element parallel {
SerialInstances* &
Instance*
}
SerialInstances = element steps {
ParallelInstances* &
Instance*
}
Upgrade = element upgrade {
attribute policy { xsd:string }? &
attribute revision-target { xsd:string }? &
attribute revision-change { xsd:string }? &
attribute min-risk { xsd:long }? &
attribute max-risk { xsd:long }? &
attribute max-idle-hours { xsd:long }? &
attribute rollout { xsd:string }?
}
BlockChange = element block-change {
attribute revision { xsd:boolean }? &
attribute version { xsd:boolean }? &
attribute days { xsd:string }? &
attribute hours { xsd:string }? &
attribute from-date { xsd:string }? &
attribute to-date { xsd:string }? &
attribute time-zone { xsd:string }?
}
Notifications = element notifications {
attribute when { xsd:string }? &
Email*
}
Email = element email {
attribute address { xsd:string }? &
attribute role { xsd:string }? &
attribute when { xsd:string }?
}
Test = element test {
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
Tester?
}
Staging = element staging {
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
Tester?
}
Dev = element dev {
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
attribute athenz-service { xsd:string }? &
attribute tags { xsd:string }? &
Endpoints?
}
Prod = element prod {
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
Region* &
Delay* &
ProdTest* &
ParallelSteps* &
Tester?
}
ProdTest = element test {
attribute empty-host-ttl { xsd:string }? &
text
}
Region = element region {
attribute active { xsd:boolean }? &
attribute athenz-service { xsd:string }? &
attribute cloud-account { xsd:string }? &
attribute empty-host-ttl { xsd:string }? &
text
}
Delay = element delay {
attribute hours { xsd:long }? &
attribute minutes { xsd:long }? &
attribute seconds { xsd:long }?
}
EndpointRegion = element region {
text
}
EndpointInstance = element instance {
attribute weight { xsd:long } &
attribute region { xsd:string }? &
text
}
AllowedUrn = element allow {
attribute with { xsd:string } &
attribute arn { xsd:string }? &
attribute project { xsd:string }?
}
Endpoint = element endpoint {
attribute id { xsd:string }? &
attribute container-id { xsd:string } &
attribute region { xsd:string }? &
attribute type { xsd:string }? &
attribute enabled { xsd:boolean }? &
EndpointRegion* &
EndpointInstance* &
AllowedUrn*
}
Endpoints = element endpoints {
Endpoint+
}
Bcp = element bcp {
attribute deadline { xsd:string }? &
Group*
}
Group = element group {
attribute deadline { xsd:string }? &
Endpoint* &
MemberRegion+
}
MemberRegion = element region {
attribute fraction { xsd:double }? &
text
}
Tester = element tester {
Nodes?
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy