[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://raw.githubusercontent.com/architect-team/architect-cli/main/src/dependency-manager/schema/architect.schema.json","title":"Schema for architect.yml. See: https://docs.architect.io/reference/architect-yml","$schema":"http://json-schema.org/draft-07/schema","properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/SecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/DependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","required":["name"],"description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/SecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/DependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","required":["name"],"description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{}}]}},"definitions":{"DatabaseSpec":{"properties":{"description":{"type":"string","description":"Human readable description"},"type":{"type":"string","anyOf":[{"type":"string","enum":["postgres:10","postgres:11","postgres:12","postgres:13","postgres:14","postgres:15","mysql:5","mysql:6","mysql:7","mysql:8","mariadb:10"]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The type engine and version of database software needed for data storage.","errorMessage":"must be of the format <engine>:<version> (e.g. postgres:13)"},"connection_string":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The connection uri of an existing database to use instead of provisioning a new one"}},"type":"object","required":["type"],"description":"Component databases let you quickly spin up a database for your service","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#databasespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"type":"string","description":"Human readable description"},"type":{"type":"string","anyOf":[{"type":"string","enum":["postgres:10","postgres:11","postgres:12","postgres:13","postgres:14","postgres:15","mysql:5","mysql:6","mysql:7","mysql:8","mariadb:10"]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The type engine and version of database software needed for data storage.","errorMessage":"must be of the format <engine>:<version> (e.g. postgres:13)"},"connection_string":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The connection uri of an existing database to use instead of provisioning a new one"}},"type":"object","required":["type"],"description":"Component databases let you quickly spin up a database for your service","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#databasespec"},"patternProperties":{}}]}}},"SecretDefinitionSpec":{"properties":{"required":{"type":"boolean","description":"Denotes whether the secret is required."},"description":{"type":"string","description":"A human-friendly description of the secret."},"default":{"anyOf":[{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"number"},{"type":"object"},{"type":"string"},{"type":"null"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Sets a default value for the secret if one is not provided"}},"type":"object","description":"Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#secretdefinitionspec"}},"LivenessProbeSpec":{"properties":{"success_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a health check before the container is considered healthy.","default":1},"failure_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a failed health check before the container is considered unhealthy.","default":3},"timeout":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s","default":"5s"},"interval":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period in seconds between each health check execution. You may specify any value between: 5s and 300s","default":"30s"},"initial_delay":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Delays the check from running for the specified amount of time","default":"0s"},"path":{"deprecated":true,"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Path for the http check executable. Path should be absolute (e.g. /health). If `path` is set, `port` also must be set. This field is disjunctive with `command` (only one of `path` or `command` can be set)."},"command":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"description":"Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set)."},"port":{"deprecated":true,"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set)."}},"type":"object","allOf":[{"oneOf":[{"type":"object","required":["command"]},{"type":"object","required":["path","port"]}]},{"not":{"type":"object","required":["command","port"]}},{"not":{"type":"object","required":["command","path"]}}],"description":"Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#livenessprobespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"success_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a health check before the container is considered healthy.","default":1},"failure_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a failed health check before the container is considered unhealthy.","default":3},"timeout":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s","default":"5s"},"interval":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period in seconds between each health check execution. You may specify any value between: 5s and 300s","default":"30s"},"initial_delay":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Delays the check from running for the specified amount of time","default":"0s"},"path":{"deprecated":true,"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Path for the http check executable. Path should be absolute (e.g. /health). If `path` is set, `port` also must be set. This field is disjunctive with `command` (only one of `path` or `command` can be set)."},"command":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"description":"Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set)."},"port":{"deprecated":true,"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set)."}},"type":"object","allOf":[{"oneOf":[{"type":"object","required":["command"]},{"type":"object","required":["path","port"]}]},{"not":{"type":"object","required":["command","port"]}},{"not":{"type":"object","required":["command","path"]}}],"description":"Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#livenessprobespec"},"patternProperties":{}}]}}},"VolumeSpec":{"properties":{"mount_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Directory at which the volume will be mounted inside the container."},"host_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A directory on the host machine to sync with the mount_path on the docker image. This field is only relevant inside the debug block for local deployments. This field is disjunctive with `key` (only one of `host_path` or `key` can be set)."},"key":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A reference to the underlying volume on the deployment cluster of choice. The `docker-compose` volume name, the name of the Kubernetes PersistentVolumeClaim, or the EFS ID of an AWS volume. This field is disjunctive with `host_path` (only one of `key` or `host_path` can be set).","externalDocs":{"url":"https://docs.architect.io/components/services/#volumes"}},"description":{"type":"string","description":"Human-readable description of volume"},"readonly":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the volume as readonly.","default":false}},"type":"object","not":{"type":"object","required":["host_path","key"]},"errorMessage":{"not":"Only one of host_path, key is allowed, or none should exist"},"description":"Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#volumespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"mount_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Directory at which the volume will be mounted inside the container."},"host_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A directory on the host machine to sync with the mount_path on the docker image. This field is only relevant inside the debug block for local deployments. This field is disjunctive with `key` (only one of `host_path` or `key` can be set)."},"key":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A reference to the underlying volume on the deployment cluster of choice. The `docker-compose` volume name, the name of the Kubernetes PersistentVolumeClaim, or the EFS ID of an AWS volume. This field is disjunctive with `host_path` (only one of `key` or `host_path` can be set).","externalDocs":{"url":"https://docs.architect.io/components/services/#volumes"}},"description":{"type":"string","description":"Human-readable description of volume"},"readonly":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the volume as readonly.","default":false}},"type":"object","not":{"type":"object","required":["host_path","key"]},"errorMessage":{"not":"Only one of host_path, key is allowed, or none should exist"},"description":"Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#volumespec"},"patternProperties":{}}]}}},"BuildSpec":{"properties":{"context":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the directory containing the source code relative to the `architect.yml` file."},"buildpack":{"type":"boolean","description":"Option to use buildpack to build an image."},"args":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false},"dockerfile":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the Dockerfile relative to the `build.context`","default":"Dockerfile"},"target":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The stage to build in the Dockerfile"}},"type":"object","description":"An object containing the details necessary for Architect to build the service via Docker. Whenever a service that specifies a build field is registered with Architect, the CLI will trigger a docker build and replace the build field with a resolvable image.","not":{"type":"object","required":["buildpack","dockerfile"]},"errorMessage":{"not":"Only one of buildpack, dockerfile is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#buildspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"context":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the directory containing the source code relative to the `architect.yml` file."},"buildpack":{"type":"boolean","description":"Option to use buildpack to build an image."},"args":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false},"dockerfile":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the Dockerfile relative to the `build.context`","default":"Dockerfile"},"target":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The stage to build in the Dockerfile"}},"type":"object","description":"An object containing the details necessary for Architect to build the service via Docker. Whenever a service that specifies a build field is registered with Architect, the CLI will trigger a docker build and replace the build field with a resolvable image.","not":{"type":"object","required":["buildpack","dockerfile"]},"errorMessage":{"not":"Only one of buildpack, dockerfile is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#buildspec"},"patternProperties":{}}]}}},"IngressTlsSpec":{"properties":{"crt":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate."},"key":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate key."},"ca":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate ca."}},"type":"object","required":["crt","key"],"description":"Configuration for custom certificate.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingresstlsspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"crt":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate."},"key":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate key."},"ca":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate ca."}},"type":"object","required":["crt","key"],"description":"Configuration for custom certificate.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingresstlsspec"},"patternProperties":{}}]}}},"IngressSpec":{"properties":{"enabled":{"type":"boolean","description":"Marks the interface as an ingress."},"subdomain":{"anyOf":[{"type":"string","pattern":"^([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,61}[A-Za-z0-9])|[^\\W\\D\\s\\t\\n\\r\\/]+|[\\@\\*]?)$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.","errorMessage":"must contain alphanumeric characters ([a-z0-9A-Z]), could contain dashes (-) and alphanumerics between."},"tls":{"$ref":"#/definitions/IngressTlsSpec"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface used for path based routing"},"ip_whitelist":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","format":"cidrv4"},{"type":"string","pattern":"\\${{\\s*secrets\\.[\\w-]+\\s*}}"}]}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}|(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d\\d?)?,?","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}, or a comma-delimited list of cidr/ip addresses ex 8.8.8.8,8.8.4.4/24"}}],"description":"IP addresses that are allowed to access the interface"},"private":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the ingress as private behind Architect authentication"}},"type":"object","description":"An ingress exposes an interface to external network traffic through an architect-deployed gateway.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingressspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"enabled":{"type":"boolean","description":"Marks the interface as an ingress."},"subdomain":{"anyOf":[{"type":"string","pattern":"^([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,61}[A-Za-z0-9])|[^\\W\\D\\s\\t\\n\\r\\/]+|[\\@\\*]?)$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.","errorMessage":"must contain alphanumeric characters ([a-z0-9A-Z]), could contain dashes (-) and alphanumerics between."},"tls":{"$ref":"#/definitions/IngressTlsSpec"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface used for path based routing"},"ip_whitelist":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","format":"cidrv4"},{"type":"string","pattern":"\\${{\\s*secrets\\.[\\w-]+\\s*}}"}]}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}|(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d\\d?)?,?","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}, or a comma-delimited list of cidr/ip addresses ex 8.8.8.8,8.8.4.4/24"}}],"description":"IP addresses that are allowed to access the interface"},"private":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the ingress as private behind Architect authentication"}},"type":"object","description":"An ingress exposes an interface to external network traffic through an architect-deployed gateway.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingressspec"},"patternProperties":{}}]}}},"ScalingMetricsSpec":{"properties":{"cpu":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}}},"type":"object","anyOf":[{"type":"object","required":["cpu"]},{"type":"object","required":["memory"]}],"description":"Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingmetricsspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"cpu":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}}},"type":"object","anyOf":[{"type":"object","required":["cpu"]},{"type":"object","required":["memory"]}],"description":"Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingmetricsspec"},"patternProperties":{}}]}}},"ScalingSpec":{"properties":{"min_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target minimum number of service replicas."},"max_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target maximum number of service replicas."},"metrics":{"$ref":"#/definitions/ScalingMetricsSpec"}},"type":"object","required":["min_replicas","max_replicas","metrics"],"description":"Configuration that dictates the scaling behavior of a service.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"min_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target minimum number of service replicas."},"max_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target maximum number of service replicas."},"metrics":{"$ref":"#/definitions/ScalingMetricsSpec"}},"type":"object","required":["min_replicas","max_replicas","metrics"],"description":"Configuration that dictates the scaling behavior of a service.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingspec"},"patternProperties":{}}]}}},"KubernetesDeploySpec":{"properties":{"deployment":{}},"type":"object","required":["deployment"],"description":"Configuration that dictates the kubernetes deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#kubernetesdeployspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"deployment":{}},"type":"object","required":["deployment"],"description":"Configuration that dictates the kubernetes deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#kubernetesdeployspec"},"patternProperties":{}}]}}},"DeploySpec":{"properties":{"kubernetes":{"$ref":"#/definitions/KubernetesDeploySpec"}},"type":"object","required":["kubernetes"],"description":"Configuration that dictates the deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#deployspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"kubernetes":{"$ref":"#/definitions/KubernetesDeploySpec"}},"type":"object","required":["kubernetes"],"description":"Configuration that dictates the deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#deployspec"},"patternProperties":{}}]}}},"ServiceInterfaceSpec":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A human-readable description of the interface."},"host":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Port on which the service is listening for traffic."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Protocol that the interface responds to","default":"http"},"username":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth username required to access the interface"},"password":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth password required to access the interface"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface"},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url."},"sticky":{"anyOf":[{"anyOf":[{"type":"boolean"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Denotes that if this interface is made external, the gateway should use sticky sessions","default":false},"ingress":{"$ref":"#/definitions/IngressSpec"}},"type":"object","required":["port"],"oneOf":[{"type":"object","required":["port"]},{"type":"object","required":["url"]}],"description":"A service interface exposes service functionality over the network to other services within the same component. If you would like to expose services on the network to external components, see the ComponentInterfaceSpec","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#serviceinterfacespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A human-readable description of the interface."},"host":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Port on which the service is listening for traffic."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Protocol that the interface responds to","default":"http"},"username":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth username required to access the interface"},"password":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth password required to access the interface"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface"},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url."},"sticky":{"anyOf":[{"anyOf":[{"type":"boolean"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Denotes that if this interface is made external, the gateway should use sticky sessions","default":false},"ingress":{"$ref":"#/definitions/IngressSpec"}},"type":"object","required":["port"],"oneOf":[{"type":"object","required":["port"]},{"type":"object","required":["url"]}],"description":"A service interface exposes service functionality over the network to other services within the same component. If you would like to expose services on the network to external components, see the ComponentInterfaceSpec","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#serviceinterfacespec"},"patternProperties":{}}]}}},"ServiceSpec":{"properties":{"enabled":{"type":"boolean","description":"Determines if the service should be running.","default":true},"debug":{"$ref":"#/definitions/_DebugServiceSpec"},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/ServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/ServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false},"liveness_probe":{"$ref":"#/definitions/LivenessProbeSpec"},"volumes":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/VolumeSpec"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/VolumeSpec"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false},"replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field."},"scaling":{"$ref":"#/definitions/ScalingSpec"},"deploy":{"$ref":"#/definitions/DeploySpec"},"termination_grace_period":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"default":"30s","description":"A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/BuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#servicespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"enabled":{"type":"boolean","description":"Determines if the service should be running.","default":true},"debug":{"$ref":"#/definitions/_DebugServiceSpec"},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/ServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/ServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false},"liveness_probe":{"$ref":"#/definitions/LivenessProbeSpec"},"volumes":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/VolumeSpec"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/VolumeSpec"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false},"replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field."},"scaling":{"$ref":"#/definitions/ScalingSpec"},"deploy":{"$ref":"#/definitions/DeploySpec"},"termination_grace_period":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"default":"30s","description":"A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/BuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#servicespec"},"patternProperties":{}}]}}},"TaskSpec":{"properties":{"debug":{"$ref":"#/definitions/_DebugTaskSpec"},"schedule":{"anyOf":[{"type":"string","format":"cron","errorMessage":{"format":"must be a valid cron expression"}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/BuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A Task represents a recurring and/or exiting runtime (e.g. crons, schedulers, triggered jobs). Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#taskspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"debug":{"$ref":"#/definitions/_DebugTaskSpec"},"schedule":{"anyOf":[{"type":"string","format":"cron","errorMessage":{"format":"must be a valid cron expression"}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/BuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A Task represents a recurring and/or exiting runtime (e.g. crons, schedulers, triggered jobs). Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#taskspec"},"patternProperties":{}}]}}},"DependencySpec":{"properties":{"tag":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$","deprecated":true},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"type":"object","description":"An empty object that optionally supports specifying a tag for backwards compatibility.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#dependencyspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"tag":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$","deprecated":true},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"type":"object","description":"An empty object that optionally supports specifying a tag for backwards compatibility.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#dependencyspec"},"patternProperties":{}}]}}},"ComponentInterfaceSpec":{"properties":{"ingress":{"$ref":"#/definitions/IngressSpec"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for."},"host":{"type":"string","description":"The host that the component interface should forward to."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The port that the component interface should forward to."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The protocol by which the component interface can be connected to."},"username":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth username by which a component interface can be connected to."},"password":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth password by which a component interface can be connected to."},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url that the component interface should forward to."},"sticky":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running."}},"type":"object","required":["url"],"description":"Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentinterfacespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"ingress":{"$ref":"#/definitions/IngressSpec"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for."},"host":{"type":"string","description":"The host that the component interface should forward to."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The port that the component interface should forward to."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The protocol by which the component interface can be connected to."},"username":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth username by which a component interface can be connected to."},"password":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth password by which a component interface can be connected to."},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url that the component interface should forward to."},"sticky":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running."}},"type":"object","required":["url"],"description":"Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentinterfacespec"},"patternProperties":{}}]}}},"OutputDefinitionSpec":{"properties":{"description":{"type":"string","description":"A human-friendly description of the output field."},"value":{"description":"Value of the output to be passed to upstream consumers"}},"type":"object","required":["value"],"description":"Components can define output fields that can be used to share configuration with consuming components.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#outputdefinitionspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"type":"string","description":"A human-friendly description of the output field."},"value":{"description":"Value of the output to be passed to upstream consumers"}},"type":"object","required":["value"],"description":"Components can define output fields that can be used to share configuration with consuming components.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#outputdefinitionspec"},"patternProperties":{}}]}}},"ComponentSpec":{"properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/SecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/DependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","required":["name"],"description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/SecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/OutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/DatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/ServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/TaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/DependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/ComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","required":["name"],"description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{}}]}}},"_DebugDatabaseSpec":{"properties":{"description":{"type":"string","description":"Human readable description"},"type":{"type":"string","anyOf":[{"type":"string","enum":["postgres:10","postgres:11","postgres:12","postgres:13","postgres:14","postgres:15","mysql:5","mysql:6","mysql:7","mysql:8","mariadb:10"]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The type engine and version of database software needed for data storage.","errorMessage":"must be of the format <engine>:<version> (e.g. postgres:13)"},"connection_string":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The connection uri of an existing database to use instead of provisioning a new one"}},"type":"object","description":"Component databases let you quickly spin up a database for your service","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#databasespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"type":"string","description":"Human readable description"},"type":{"type":"string","anyOf":[{"type":"string","enum":["postgres:10","postgres:11","postgres:12","postgres:13","postgres:14","postgres:15","mysql:5","mysql:6","mysql:7","mysql:8","mariadb:10"]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The type engine and version of database software needed for data storage.","errorMessage":"must be of the format <engine>:<version> (e.g. postgres:13)"},"connection_string":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The connection uri of an existing database to use instead of provisioning a new one"}},"type":"object","description":"Component databases let you quickly spin up a database for your service","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#databasespec"},"patternProperties":{}}]}}},"_DebugSecretDefinitionSpec":{"properties":{"required":{"type":"boolean","description":"Denotes whether the secret is required."},"description":{"type":"string","description":"A human-friendly description of the secret."},"default":{"anyOf":[{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"number"},{"type":"object"},{"type":"string"},{"type":"null"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Sets a default value for the secret if one is not provided"}},"type":"object","description":"Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#secretdefinitionspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"required":{"type":"boolean","description":"Denotes whether the secret is required."},"description":{"type":"string","description":"A human-friendly description of the secret."},"default":{"anyOf":[{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"number"},{"type":"object"},{"type":"string"},{"type":"null"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Sets a default value for the secret if one is not provided"}},"type":"object","description":"Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#secretdefinitionspec"},"patternProperties":{}}]}}},"_DebugLivenessProbeSpec":{"properties":{"success_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a health check before the container is considered healthy.","default":1},"failure_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a failed health check before the container is considered unhealthy.","default":3},"timeout":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s","default":"5s"},"interval":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period in seconds between each health check execution. You may specify any value between: 5s and 300s","default":"30s"},"initial_delay":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Delays the check from running for the specified amount of time","default":"0s"},"path":{"deprecated":true,"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Path for the http check executable. Path should be absolute (e.g. /health). If `path` is set, `port` also must be set. This field is disjunctive with `command` (only one of `path` or `command` can be set)."},"command":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"description":"Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set)."},"port":{"deprecated":true,"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set)."}},"type":"object","description":"Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#livenessprobespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"success_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a health check before the container is considered healthy.","default":1},"failure_threshold":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The number of times to retry a failed health check before the container is considered unhealthy.","default":3},"timeout":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s","default":"5s"},"interval":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The time period in seconds between each health check execution. You may specify any value between: 5s and 300s","default":"30s"},"initial_delay":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Delays the check from running for the specified amount of time","default":"0s"},"path":{"deprecated":true,"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Path for the http check executable. Path should be absolute (e.g. /health). If `path` is set, `port` also must be set. This field is disjunctive with `command` (only one of `path` or `command` can be set)."},"command":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"description":"Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set)."},"port":{"deprecated":true,"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set)."}},"type":"object","description":"Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#livenessprobespec"},"patternProperties":{}}]}}},"_DebugVolumeSpec":{"properties":{"mount_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Directory at which the volume will be mounted inside the container."},"host_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A directory on the host machine to sync with the mount_path on the docker image. This field is only relevant inside the debug block for local deployments. This field is disjunctive with `key` (only one of `host_path` or `key` can be set)."},"key":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A reference to the underlying volume on the deployment cluster of choice. The `docker-compose` volume name, the name of the Kubernetes PersistentVolumeClaim, or the EFS ID of an AWS volume. This field is disjunctive with `host_path` (only one of `key` or `host_path` can be set).","externalDocs":{"url":"https://docs.architect.io/components/services/#volumes"}},"description":{"type":"string","description":"Human-readable description of volume"},"readonly":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the volume as readonly.","default":false}},"type":"object","not":{"type":"object","required":["host_path","key"]},"errorMessage":{"not":"Only one of host_path, key is allowed, or none should exist"},"description":"Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#volumespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"mount_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Directory at which the volume will be mounted inside the container."},"host_path":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A directory on the host machine to sync with the mount_path on the docker image. This field is only relevant inside the debug block for local deployments. This field is disjunctive with `key` (only one of `host_path` or `key` can be set)."},"key":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A reference to the underlying volume on the deployment cluster of choice. The `docker-compose` volume name, the name of the Kubernetes PersistentVolumeClaim, or the EFS ID of an AWS volume. This field is disjunctive with `host_path` (only one of `key` or `host_path` can be set).","externalDocs":{"url":"https://docs.architect.io/components/services/#volumes"}},"description":{"type":"string","description":"Human-readable description of volume"},"readonly":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the volume as readonly.","default":false}},"type":"object","not":{"type":"object","required":["host_path","key"]},"errorMessage":{"not":"Only one of host_path, key is allowed, or none should exist"},"description":"Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#volumespec"},"patternProperties":{}}]}}},"_DebugBuildSpec":{"properties":{"context":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the directory containing the source code relative to the `architect.yml` file."},"buildpack":{"type":"boolean","description":"Option to use buildpack to build an image."},"args":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false},"dockerfile":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the Dockerfile relative to the `build.context`","default":"Dockerfile"},"target":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The stage to build in the Dockerfile"}},"type":"object","description":"An object containing the details necessary for Architect to build the service via Docker. Whenever a service that specifies a build field is registered with Architect, the CLI will trigger a docker build and replace the build field with a resolvable image.","not":{"type":"object","required":["buildpack","dockerfile"]},"errorMessage":{"not":"Only one of buildpack, dockerfile is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#buildspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"context":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the directory containing the source code relative to the `architect.yml` file."},"buildpack":{"type":"boolean","description":"Option to use buildpack to build an image."},"args":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"string"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"Build args to be passed into `docker build`.","additionalProperties":false},"dockerfile":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path to the Dockerfile relative to the `build.context`","default":"Dockerfile"},"target":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The stage to build in the Dockerfile"}},"type":"object","description":"An object containing the details necessary for Architect to build the service via Docker. Whenever a service that specifies a build field is registered with Architect, the CLI will trigger a docker build and replace the build field with a resolvable image.","not":{"type":"object","required":["buildpack","dockerfile"]},"errorMessage":{"not":"Only one of buildpack, dockerfile is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#buildspec"},"patternProperties":{}}]}}},"_DebugIngressTlsSpec":{"properties":{"crt":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate."},"key":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate key."},"ca":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate ca."}},"type":"object","description":"Configuration for custom certificate.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingresstlsspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"crt":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate."},"key":{"type":"string","anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate key."},"ca":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Custom certificate ca."}},"type":"object","description":"Configuration for custom certificate.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingresstlsspec"},"patternProperties":{}}]}}},"_DebugIngressSpec":{"properties":{"enabled":{"type":"boolean","description":"Marks the interface as an ingress."},"subdomain":{"anyOf":[{"type":"string","pattern":"^([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,61}[A-Za-z0-9])|[^\\W\\D\\s\\t\\n\\r\\/]+|[\\@\\*]?)$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.","errorMessage":"must contain alphanumeric characters ([a-z0-9A-Z]), could contain dashes (-) and alphanumerics between."},"tls":{"$ref":"#/definitions/_DebugIngressTlsSpec"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface used for path based routing"},"ip_whitelist":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","format":"cidrv4"},{"type":"string","pattern":"\\${{\\s*secrets\\.[\\w-]+\\s*}}"}]}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}|(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d\\d?)?,?","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}, or a comma-delimited list of cidr/ip addresses ex 8.8.8.8,8.8.4.4/24"}}],"description":"IP addresses that are allowed to access the interface"},"private":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the ingress as private behind Architect authentication"}},"type":"object","description":"An ingress exposes an interface to external network traffic through an architect-deployed gateway.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingressspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"enabled":{"type":"boolean","description":"Marks the interface as an ingress."},"subdomain":{"anyOf":[{"type":"string","pattern":"^([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,61}[A-Za-z0-9])|[^\\W\\D\\s\\t\\n\\r\\/]+|[\\@\\*]?)$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.","errorMessage":"must contain alphanumeric characters ([a-z0-9A-Z]), could contain dashes (-) and alphanumerics between."},"tls":{"$ref":"#/definitions/_DebugIngressTlsSpec"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface used for path based routing"},"ip_whitelist":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","format":"cidrv4"},{"type":"string","pattern":"\\${{\\s*secrets\\.[\\w-]+\\s*}}"}]}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}|(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d\\d?)?,?","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}, or a comma-delimited list of cidr/ip addresses ex 8.8.8.8,8.8.4.4/24"}}],"description":"IP addresses that are allowed to access the interface"},"private":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Marks the ingress as private behind Architect authentication"}},"type":"object","description":"An ingress exposes an interface to external network traffic through an architect-deployed gateway.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#ingressspec"},"patternProperties":{}}]}}},"_DebugScalingMetricsSpec":{"properties":{"cpu":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}}},"type":"object","description":"Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingmetricsspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"cpu":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory usage required to trigger scaling.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}}},"type":"object","description":"Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingmetricsspec"},"patternProperties":{}}]}}},"_DebugScalingSpec":{"properties":{"min_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target minimum number of service replicas."},"max_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target maximum number of service replicas."},"metrics":{"$ref":"#/definitions/_DebugScalingMetricsSpec"}},"type":"object","description":"Configuration that dictates the scaling behavior of a service.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"min_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target minimum number of service replicas."},"max_replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The target maximum number of service replicas."},"metrics":{"$ref":"#/definitions/_DebugScalingMetricsSpec"}},"type":"object","description":"Configuration that dictates the scaling behavior of a service.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#scalingspec"},"patternProperties":{}}]}}},"_DebugKubernetesDeploySpec":{"properties":{"deployment":{}},"type":"object","description":"Configuration that dictates the kubernetes deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#kubernetesdeployspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"deployment":{}},"type":"object","description":"Configuration that dictates the kubernetes deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#kubernetesdeployspec"},"patternProperties":{}}]}}},"_DebugDeploySpec":{"properties":{"kubernetes":{"$ref":"#/definitions/_DebugKubernetesDeploySpec"}},"type":"object","description":"Configuration that dictates the deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#deployspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"kubernetes":{"$ref":"#/definitions/_DebugKubernetesDeploySpec"}},"type":"object","description":"Configuration that dictates the deploy overrides.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#deployspec"},"patternProperties":{}}]}}},"_DebugServiceInterfaceSpec":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A human-readable description of the interface."},"host":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Port on which the service is listening for traffic."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Protocol that the interface responds to","default":"http"},"username":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth username required to access the interface"},"password":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth password required to access the interface"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface"},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url."},"sticky":{"anyOf":[{"anyOf":[{"type":"boolean"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Denotes that if this interface is made external, the gateway should use sticky sessions","default":false},"ingress":{"$ref":"#/definitions/_DebugIngressSpec"}},"type":"object","description":"A service interface exposes service functionality over the network to other services within the same component. If you would like to expose services on the network to external components, see the ComponentInterfaceSpec","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#serviceinterfacespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A human-readable description of the interface."},"host":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Port on which the service is listening for traffic."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Protocol that the interface responds to","default":"http"},"username":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth username required to access the interface"},"password":{"anyOf":[{"anyOf":[{"type":"null"},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A Basic Auth password required to access the interface"},"path":{"anyOf":[{"type":"string","pattern":"^\\/.*$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The path of the interface"},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url."},"sticky":{"anyOf":[{"anyOf":[{"type":"boolean"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"Denotes that if this interface is made external, the gateway should use sticky sessions","default":false},"ingress":{"$ref":"#/definitions/_DebugIngressSpec"}},"type":"object","description":"A service interface exposes service functionality over the network to other services within the same component. If you would like to expose services on the network to external components, see the ComponentInterfaceSpec","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#serviceinterfacespec"},"patternProperties":{}}]}}},"_DebugServiceSpec":{"properties":{"enabled":{"type":"boolean","description":"Determines if the service should be running.","default":true},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/_DebugServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/_DebugServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false},"liveness_probe":{"$ref":"#/definitions/_DebugLivenessProbeSpec"},"volumes":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugVolumeSpec"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugVolumeSpec"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false},"replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field."},"scaling":{"$ref":"#/definitions/_DebugScalingSpec"},"deploy":{"$ref":"#/definitions/_DebugDeploySpec"},"termination_grace_period":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"default":"30s","description":"A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/_DebugBuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#servicespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"enabled":{"type":"boolean","description":"Determines if the service should be running.","default":true},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/_DebugServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"anyOf":[{"$ref":"#/definitions/_DebugServiceInterfaceSpec"},{"type":"number"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.","additionalProperties":false},"liveness_probe":{"$ref":"#/definitions/_DebugLivenessProbeSpec"},"volumes":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugVolumeSpec"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugVolumeSpec"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.","additionalProperties":false},"replicas":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field."},"scaling":{"$ref":"#/definitions/_DebugScalingSpec"},"deploy":{"$ref":"#/definitions/_DebugDeploySpec"},"termination_grace_period":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"default":"30s","description":"A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/_DebugBuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#servicespec"},"patternProperties":{}}]}}},"_DebugTaskSpec":{"properties":{"schedule":{"anyOf":[{"type":"string","format":"cron","errorMessage":{"format":"must be a valid cron expression"}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/_DebugBuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A Task represents a recurring and/or exiting runtime (e.g. crons, schedulers, triggered jobs). Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#taskspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"schedule":{"anyOf":[{"type":"string","format":"cron","errorMessage":{"format":"must be a valid cron expression"}},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI."},"description":{"type":"string","description":"Human readable description"},"image":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)"},"command":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command."},"entrypoint":{"anyOf":[{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint."},"language":{"type":"string","description":"The dominant programming language used; this is for informational purposes only."},"environment":{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_]+$":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"null"},{"type":"number"},{"type":"string"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of key-value pairs or secret definitions that describes environment variables and their values.","externalDocs":{"url":"https://docs.architect.io/components/services/#local-configuration"},"additionalProperties":false},"build":{"$ref":"#/definitions/_DebugBuildSpec"},"cpu":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The cpu required to run a service or a task","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"memory":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The memory required to run a service or a task.","externalDocs":{"url":"https://docs.architect.io/components/services/#cpu--memory"}},"depends_on":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks."},"labels":{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?=(.{1,63}/)?.{1,63}$)((([a-z0-9][-a-z0-9_.]*)?[a-z0-9])?/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$":{"anyOf":[{"type":"string","pattern":"^(?=.{1,63})(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false}]}},"description":"A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.","externalDocs":{"url":"https://docs.architect.io/components/services/#labels"},"additionalProperties":false},"reserved_name":{"type":"string","pattern":"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"A specific service name which will override the service name specified in the component."}},"type":"object","description":"A Task represents a recurring and/or exiting runtime (e.g. crons, schedulers, triggered jobs). Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","not":{"type":"object","required":["build","image"]},"errorMessage":{"not":"Only one of build, image is allowed, or none should exist"},"additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#taskspec"},"patternProperties":{}}]}}},"_DebugDependencySpec":{"properties":{"tag":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$","deprecated":true},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"type":"object","description":"An empty object that optionally supports specifying a tag for backwards compatibility.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#dependencyspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"tag":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$","deprecated":true},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}]}},"type":"object","description":"An empty object that optionally supports specifying a tag for backwards compatibility.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#dependencyspec"},"patternProperties":{}}]}}},"_DebugComponentInterfaceSpec":{"properties":{"ingress":{"$ref":"#/definitions/_DebugIngressSpec"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for."},"host":{"type":"string","description":"The host that the component interface should forward to."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The port that the component interface should forward to."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The protocol by which the component interface can be connected to."},"username":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth username by which a component interface can be connected to."},"password":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth password by which a component interface can be connected to."},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url that the component interface should forward to."},"sticky":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running."}},"type":"object","description":"Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentinterfacespec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"ingress":{"$ref":"#/definitions/_DebugIngressSpec"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for."},"host":{"type":"string","description":"The host that the component interface should forward to."},"port":{"anyOf":[{"type":"number"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The port that the component interface should forward to."},"protocol":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The protocol by which the component interface can be connected to."},"username":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth username by which a component interface can be connected to."},"password":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The Basic Auth password by which a component interface can be connected to."},"url":{"anyOf":[{"type":"string"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"The url that the component interface should forward to."},"sticky":{"anyOf":[{"type":"boolean"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}}],"description":"If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running."}},"type":"object","description":"Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentinterfacespec"},"patternProperties":{}}]}}},"_DebugOutputDefinitionSpec":{"properties":{"description":{"type":"string","description":"A human-friendly description of the output field."},"value":{"description":"Value of the output to be passed to upstream consumers"}},"type":"object","description":"Components can define output fields that can be used to share configuration with consuming components.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#outputdefinitionspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"description":{"type":"string","description":"A human-friendly description of the output field."},"value":{"description":"Value of the output to be passed to upstream consumers"}},"type":"object","description":"Components can define output fields that can be used to share configuration with consuming components.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#outputdefinitionspec"},"patternProperties":{}}]}}},"_DebugComponentSpec":{"properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugSecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugOutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugOutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugDatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugDatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugTaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugTaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/_DebugDependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/_DebugComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/_DebugComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"properties":{"name":{"type":"string","pattern":"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$","errorMessage":"must contain only lower alphanumeric and single hyphens in the middle; max length 32","description":"Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":{"type":"string","description":"A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for."},"keywords":{"type":"array","items":{"anyOf":[{"type":"string"}]},"description":"Additional search terms to be used when the component is indexed so that others can find it more easily."},"author":{"type":"string","description":"The name or handle of the author of the component as a developer contact."},"homepage":{"type":"string","description":"The url that serves as the informational homepage of the component (i.e. a github repo)."},"secrets":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugSecretDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec","additionalProperties":false},"outputs":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugOutputDefinitionSpec"},{"type":"null"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"$ref":"#/definitions/_DebugOutputDefinitionSpec"},{"type":"null"}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between."},"description":"A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.","additionalProperties":false},"databases":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugDatabaseSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugDatabaseSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A database represents a stateful service powered by one of several supported database engines.","additionalProperties":false},"services":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugServiceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugServiceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.","additionalProperties":false},"tasks":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugTaskSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"$ref":"#/definitions/_DebugTaskSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.","additionalProperties":false},"dependencies":{"type":"object","patternProperties":{"^(?:(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)\\/)?(?<component_name>(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-))(?:@(?<instance_name>[\\w][\\w\\.-]{0,127}))?$":{"anyOf":[{"type":"string","pattern":"^[\\w][\\w\\.-]{0,127}$"},{"type":"string","pattern":"\\${{\\s*(.*?)\\s*}}","errorMessage":{"pattern":"must be an interpolation ref ex. $__arc__{{ secrets.example }}"}},{"$ref":"#/definitions/_DebugDependencySpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)","additionalProperties":false},"interfaces":{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/_DebugComponentInterfaceSpec"}]},"^\\${{\\s*if(.*?)\\s*}}$":{"anyOf":[{"type":"object","patternProperties":{"^(?!-)(?!.{0,32}--)[a-z0-9-]{1,32}(?<!-)$":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/_DebugComponentInterfaceSpec"}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false}]}},"errorMessage":{"additionalProperties":"must contain only lower alphanumeric and single hyphens in the middle; max length 32"},"description":"A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.","deprecated":true,"additionalProperties":false},"artifact_image":{"type":"string","deprecated":true,"description":"-"}},"type":"object","description":"The top level object of the `architect.yml`; defines a deployable Architect Component.","additionalProperties":false,"externalDocs":{"url":"https://docs.architect.io/reference/architect-yml#componentspec"},"patternProperties":{}}]}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Schema for architect.yml. See: https://docs.architect.io/reference/architect-yml". Here are the required top‑level fields: name. Return only the valid JSON object.

Schema for architect.yml. See: https://docs.architect.io/reference/architect-yml

must contain only lower alphanumeric and single hyphens in the middle; max length 32

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable fields for the component. If a component contains properties that differ across environments (i.e. environment variables), you'll want to capture them as secrets. Specifying a primitive value here will set the default secret value. For more detailed configuration, specify a SecretDefinitionSpec

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain only lower alphanumeric and single hyphens in the middle; max length 32

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A set of named recurring and/or exiting runtimes (e.g. crons, schedulers, triggered jobs) included with the component. Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.

must be an interpolation ref ex. $__arc__{{ secrets.example }}

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

A set of named gateways that broker access to the services inside the component. All network traffic within a component is locked down to the component itself, unless included in this interfaces block. An interface represents a front-door to your component, granting access to upstream callers.

The top level object of the `architect.yml`; defines a deployable Architect Component.

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

The top level object of the `architect.yml`; defines a deployable Architect Component.

Human readable description

The type engine and version of database software needed for data storage.

must be of the format <engine>:<version> (e.g. postgres:13)

The connection uri of an existing database to use instead of provisioning a new one

Component databases let you quickly spin up a database for your service

Human readable description

The type engine and version of database software needed for data storage.

The connection uri of an existing database to use instead of provisioning a new one

Component databases let you quickly spin up a database for your service

Denotes whether the secret is required.

A human-friendly description of the secret.

Sets a default value for the secret if one is not provided

Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).

The number of times to retry a health check before the container is considered healthy.

The number of times to retry a failed health check before the container is considered unhealthy.

The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s

The time period in seconds between each health check execution. You may specify any value between: 5s and 300s

Delays the check from running for the specified amount of time

[Deprecated: use `command` instead.] Path for the http check executable. Path should be absolute (e.g. /health). If `path` is set, `port` also must be set. This field is disjunctive with `command` (only one of `path` or `command` can be set).

Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set).

[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set).

Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.

The number of times to retry a health check before the container is considered healthy.

The number of times to retry a failed health check before the container is considered unhealthy.

The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s

The time period in seconds between each health check execution. You may specify any value between: 5s and 300s

Delays the check from running for the specified amount of time

Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set).

[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set).

Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.

Directory at which the volume will be mounted inside the container.

A directory on the host machine to sync with the mount_path on the docker image. This field is only relevant inside the debug block for local deployments. This field is disjunctive with `key` (only one of `host_path` or `key` can be set).

A reference to the underlying volume on the deployment cluster of choice. The `docker-compose` volume name, the name of the Kubernetes PersistentVolumeClaim, or the EFS ID of an AWS volume. This field is disjunctive with `host_path` (only one of `key` or `host_path` can be set).

Human-readable description of volume

Marks the volume as readonly.

Only one of host_path, key is allowed, or none should exist

Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

Directory at which the volume will be mounted inside the container.

Human-readable description of volume

Marks the volume as readonly.

Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

The path to the directory containing the source code relative to the `architect.yml` file.

Option to use buildpack to build an image.

Build args to be passed into `docker build`.

Build args to be passed into `docker build`.

The path to the Dockerfile relative to the `build.context`

The stage to build in the Dockerfile

An object containing the details necessary for Architect to build the service via Docker. Whenever a service that specifies a build field is registered with Architect, the CLI will trigger a docker build and replace the build field with a resolvable image.

Only one of buildpack, dockerfile is allowed, or none should exist

The path to the directory containing the source code relative to the `architect.yml` file.

Option to use buildpack to build an image.

Build args to be passed into `docker build`.

Build args to be passed into `docker build`.

The path to the Dockerfile relative to the `build.context`

The stage to build in the Dockerfile

Custom certificate.

Custom certificate key.

Custom certificate ca.

Configuration for custom certificate.

Custom certificate.

Custom certificate key.

Custom certificate ca.

Configuration for custom certificate.

Marks the interface as an ingress.

The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.

must contain alphanumeric characters ([a-z0-9A-Z]), could contain dashes (-) and alphanumerics between.

The path of the interface used for path based routing

must be an interpolation ref ex. $__arc__{{ secrets.example }}, or a comma-delimited list of cidr/ip addresses ex 8.8.8.8,8.8.4.4/24

IP addresses that are allowed to access the interface

Marks the ingress as private behind Architect authentication

An ingress exposes an interface to external network traffic through an architect-deployed gateway.

Marks the interface as an ingress.

The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.

The path of the interface used for path based routing

IP addresses that are allowed to access the interface

Marks the ingress as private behind Architect authentication

An ingress exposes an interface to external network traffic through an architect-deployed gateway.

The cpu usage required to trigger scaling.

The memory usage required to trigger scaling.

Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.

The cpu usage required to trigger scaling.

The memory usage required to trigger scaling.

Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.

The target minimum number of service replicas.

The target maximum number of service replicas.

Configuration that dictates the scaling behavior of a service.

The target minimum number of service replicas.

The target maximum number of service replicas.

Configuration that dictates the scaling behavior of a service.

Configuration that dictates the kubernetes deploy overrides.

Configuration that dictates the kubernetes deploy overrides.

Configuration that dictates the deploy overrides.

Configuration that dictates the deploy overrides.

A human-readable description of the interface.

The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host.

Port on which the service is listening for traffic.

Protocol that the interface responds to

A Basic Auth username required to access the interface

A Basic Auth password required to access the interface

The path of the interface

The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url.

Denotes that if this interface is made external, the gateway should use sticky sessions

A service interface exposes service functionality over the network to other services within the same component. If you would like to expose services on the network to external components, see the ComponentInterfaceSpec

A human-readable description of the interface.

The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host.

Port on which the service is listening for traffic.

Protocol that the interface responds to

A Basic Auth username required to access the interface

A Basic Auth password required to access the interface

The path of the interface

The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url.

Denotes that if this interface is made external, the gateway should use sticky sessions

Determines if the service should be running.

A set of named interfaces to expose service functionality over the network to other services within the same component. A `string` or `number` represents the TCP port that the service is listening on. For more detailed configuration, specify a full `ServiceInterfaceSpec` object.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field.

A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

Only one of build, image is allowed, or none should exist

Determines if the service should be running.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field.

A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A Task represents a recurring and/or exiting runtime (e.g. crons, schedulers, triggered jobs). Each task will run on its specified schedule and/or be triggerable via the Architect CLI. Tasks are 1:1 with a docker image.

A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

An empty object that optionally supports specifying a tag for backwards compatibility.

An empty object that optionally supports specifying a tag for backwards compatibility.

A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for.

The host that the component interface should forward to.

The port that the component interface should forward to.

The protocol by which the component interface can be connected to.

The Basic Auth username by which a component interface can be connected to.

The Basic Auth password by which a component interface can be connected to.

The url that the component interface should forward to.

If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running.

Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.

A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for.

The host that the component interface should forward to.

The port that the component interface should forward to.

The protocol by which the component interface can be connected to.

The Basic Auth username by which a component interface can be connected to.

The Basic Auth password by which a component interface can be connected to.

The url that the component interface should forward to.

If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running.

Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.

A human-friendly description of the output field.

Value of the output to be passed to upstream consumers

Components can define output fields that can be used to share configuration with consuming components.

A human-friendly description of the output field.

Value of the output to be passed to upstream consumers

Components can define output fields that can be used to share configuration with consuming components.

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

The top level object of the `architect.yml`; defines a deployable Architect Component.

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

The top level object of the `architect.yml`; defines a deployable Architect Component.

Human readable description

The type engine and version of database software needed for data storage.

The connection uri of an existing database to use instead of provisioning a new one

Component databases let you quickly spin up a database for your service

Human readable description

The type engine and version of database software needed for data storage.

The connection uri of an existing database to use instead of provisioning a new one

Component databases let you quickly spin up a database for your service

Denotes whether the secret is required.

A human-friendly description of the secret.

Sets a default value for the secret if one is not provided

Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).

Denotes whether the secret is required.

A human-friendly description of the secret.

Sets a default value for the secret if one is not provided

Components can define configurable secrets that can be used to enrich the contained services with environment-specific information (i.e. environment variables).

The number of times to retry a health check before the container is considered healthy.

The number of times to retry a failed health check before the container is considered unhealthy.

The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s

The time period in seconds between each health check execution. You may specify any value between: 5s and 300s

Delays the check from running for the specified amount of time

Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set).

[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set).

Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.

The number of times to retry a health check before the container is considered healthy.

The number of times to retry a failed health check before the container is considered unhealthy.

The time period to wait for a health check to succeed before it is considered a failure. You may specify any value between: 2s and 60s

The time period in seconds between each health check execution. You may specify any value between: 5s and 300s

Delays the check from running for the specified amount of time

Command that runs the http check. This field is disjunctive with `path` and `port` (only one of `command` or `path`/`port` can be set).

[Deprecated: use `command` instead.] Port that the http check will run against. If `port` is set, `path` also must be set. This field is disjunctive with `command` (only one of `port` or `command` can be set).

Configuration for service health checks. Architect uses health checks are used for load balancing and rolling updates.

Directory at which the volume will be mounted inside the container.

Human-readable description of volume

Marks the volume as readonly.

Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

Directory at which the volume will be mounted inside the container.

Human-readable description of volume

Marks the volume as readonly.

Architect can mount volumes onto your services and tasks to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

The path to the directory containing the source code relative to the `architect.yml` file.

Option to use buildpack to build an image.

Build args to be passed into `docker build`.

Build args to be passed into `docker build`.

The path to the Dockerfile relative to the `build.context`

The stage to build in the Dockerfile

The path to the directory containing the source code relative to the `architect.yml` file.

Option to use buildpack to build an image.

Build args to be passed into `docker build`.

Build args to be passed into `docker build`.

The path to the Dockerfile relative to the `build.context`

The stage to build in the Dockerfile

Custom certificate.

Custom certificate key.

Custom certificate ca.

Configuration for custom certificate.

Custom certificate.

Custom certificate key.

Custom certificate ca.

Configuration for custom certificate.

Marks the interface as an ingress.

The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.

The path of the interface used for path based routing

IP addresses that are allowed to access the interface

Marks the ingress as private behind Architect authentication

An ingress exposes an interface to external network traffic through an architect-deployed gateway.

Marks the interface as an ingress.

The subdomain that will be used if the interface is exposed externally. Use `subdomain: @` to target the base domain.

The path of the interface used for path based routing

IP addresses that are allowed to access the interface

Marks the ingress as private behind Architect authentication

An ingress exposes an interface to external network traffic through an architect-deployed gateway.

The cpu usage required to trigger scaling.

The memory usage required to trigger scaling.

Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.

The cpu usage required to trigger scaling.

The memory usage required to trigger scaling.

Scaling metrics define the upper bound of resource consumption before spinning up an additional replica.

The target minimum number of service replicas.

The target maximum number of service replicas.

Configuration that dictates the scaling behavior of a service.

The target minimum number of service replicas.

The target maximum number of service replicas.

Configuration that dictates the scaling behavior of a service.

Configuration that dictates the kubernetes deploy overrides.

Configuration that dictates the kubernetes deploy overrides.

Configuration that dictates the deploy overrides.

Configuration that dictates the deploy overrides.

A human-readable description of the interface.

The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host.

Port on which the service is listening for traffic.

Protocol that the interface responds to

A Basic Auth username required to access the interface

A Basic Auth password required to access the interface

The path of the interface

The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url.

Denotes that if this interface is made external, the gateway should use sticky sessions

A human-readable description of the interface.

The host address of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given host.

Port on which the service is listening for traffic.

Protocol that the interface responds to

A Basic Auth username required to access the interface

A Basic Auth password required to access the interface

The path of the interface

The url of an existing service to use instead of provisioning a new one. Setting this field effectively overrides any deployment of this service and directs all traffic to the given url.

Denotes that if this interface is made external, the gateway should use sticky sessions

Determines if the service should be running.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field.

A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

Determines if the service should be running.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A set of named volumes to be mounted at deploy-time. Take advantage of volumes to store data that should be shared between running containers or that should persist beyond the lifetime of a container.

A static number of replicas of a service to be deployed. For scaling configuration, see `scaling` field.

A period of time between a service being passed a SIGINT and a SIGTERM when it's scheduled to be replaced or terminated. Only used for remote deployments.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A runtimes (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

A cron expression by which this task will be scheduled. Leave blank to deploy a task that never runs unless triggered from the CLI.

Human readable description

The docker image that serves as the unit of runtime. This field is disjunctive with `build` (only one of `image` or `build` can be set)

The docker startup command. Use this if you need to override or parameterize or parameterize the docker image command.

The docker entrypoint for the container. Use this if you need to override or parameterize the docker image entrypoint.

The dominant programming language used; this is for informational purposes only.

A set of key-value pairs or secret definitions that describes environment variables and their values.

A set of key-value pairs or secret definitions that describes environment variables and their values.

The cpu required to run a service or a task

The memory required to run a service or a task.

An array of service names for those services in the component that are pre-requisites to deploy. Used at deploy-time to build a deploy order across services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A simple key-value annotation store; useful to organize, categorize, scope, and select services and tasks.

A specific service name which will override the service name specified in the component.

An empty object that optionally supports specifying a tag for backwards compatibility.

An empty object that optionally supports specifying a tag for backwards compatibility.

A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for.

The host that the component interface should forward to.

The port that the component interface should forward to.

The protocol by which the component interface can be connected to.

The Basic Auth username by which a component interface can be connected to.

The Basic Auth password by which a component interface can be connected to.

The url that the component interface should forward to.

If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running.

Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.

A human-readable description of the component. This will be rendered when potential consumers view the interface so that they know what it should be used for.

The host that the component interface should forward to.

The port that the component interface should forward to.

The protocol by which the component interface can be connected to.

The Basic Auth username by which a component interface can be connected to.

The Basic Auth password by which a component interface can be connected to.

The url that the component interface should forward to.

If this interface is made into an external ingress, sticky=true will denote the gateway should use sticky sessions if more than one replica is running.

Component Interfaces are the primary means by which components advertise their resolvable addresses to others. Interfaces are the only means by which other components can communicate with your component.

A human-friendly description of the output field.

Value of the output to be passed to upstream consumers

Components can define output fields that can be used to share configuration with consuming components.

A human-friendly description of the output field.

Value of the output to be passed to upstream consumers

Components can define output fields that can be used to share configuration with consuming components.

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

The top level object of the `architect.yml`; defines a deployable Architect Component.

Globally unique friendly reference to the component. must contain only lower alphanumeric and single hyphens in the middle; max length 32

A human-readable description of the component. This will be rendered when potential consumers view the component so that they know what it should be used for.

Additional search terms to be used when the component is indexed so that others can find it more easily.

The name or handle of the author of the component as a developer contact.

The url that serves as the informational homepage of the component (i.e. a github repo).

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

must contain alphanumeric character ([a-z0-9A-Z]), could contain dashes (-), underscores (_), and alphanumerics between.

A map of named, configurable outputs for the component. Outputs allow components to expose configuration details that should be shared with consumers, like API keys or notification topic names.

A database represents a stateful service powered by one of several supported database engines.

A database represents a stateful service powered by one of several supported database engines.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A Service represents a non-exiting runtime (e.g. daemons, servers, etc.). Each service is independently deployable and scalable. Services are 1:1 with a docker image.

A key-value set of dependencies with an empty value. Reference each dependency by component name (e.g. `cloud: {}`)

The top level object of the `architect.yml`; defines a deployable Architect Component.

Provide a JSON object that satisfies the schema "Schema for architect.yml. See: https://docs.architect.io/reference/architect-yml". Here are the required top‑level fields: name. Return only the valid JSON object.

Schema for architect.yml. See: https://docs.architect.io/reference/architect-yml