PyDo
— DigitalOcean’s Python library
pydo
is a Python client library for DigitalOceans’s HTTP API.
Installation
Install from PyPI:
pip install pydo
Initialization
pydo
must be initialized with pydo.client()
. A
DigitalOcean API Token is required. The token can be passed explicitly to pydo.client()
or defined as environment variables
DIGITALOCEAN_TOKEN
.
Here’s an example of initializing the PyDo Client:
from pydo import Client
client = Client(token="<DIGITALOCEAN_TOKEN>")
- pydo.Client(token: str, *, timeout: int = 120, **kwargs)
The official DigitalOcean Python client
- Parameters:
token (str) – A valid API token.
endpoint (str) – Service URL. Default value is “https://api.digitalocean.com”.
Example
Find below a working example for GET a ssh_key (per this http request) and printing the ID associated with the ssh key. If you’d like to try out this quick example, you can follow these instructions to add ssh keys to your DO account:
from pydo import Client
client = Client(token="<YOUR-API-TOKEN>")
ssh_keys_resp = client.ssh_keys.list()
for k in ssh_keys_resp["ssh_keys"]:
print(f"ID: {k['id']}, NAME: {k['name']}, FINGERPRINT: {k['fingerprint']}")
The above code snippet should output the following:
ID: 123456, NAME: my_test_ssh_key, FINGERPRINT: 5c:74:7e:60:28:69:34:ca:dd:74:67:c3:f3:00:7f:fe
ID: 123457, NAME: my_prod_ssh_key, FINGERPRINT: eb:76:c7:2a:d3:3e:80:5d:ef:2e:ca:86:d7:79:94:0d
You can find a more thorough example of using the PyDo client here. The example walks through the process of creating a droplet with a specified ssh key, creating a volume, and then attaching the volume to the droplet.
Pagination
Below is an example on handling pagination. One must parse the URL to find the next page:
resp = self.client.ssh_keys.list(per_page=50, page=page)
pages = resp.links.pages
if 'next' in pages.keys():
parsed_url = urlparse(pages['next'])
page = parse_qs(parsed_url.query)['page'][0]
else:
paginated = False
pydo.Client Usage
- class pydo.operations.AccountOperations(*args, **kwargs)
Bases:
object
Warning
DO NOT instantiate this class directly.
Instead, you should access the following operations through
GeneratedClient
’saccount
attribute.- get(**kwargs: Any) MutableMapping[str, Any]
Get User Information.
To show information about the current user account, send a GET request to
/v2/account
.- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "account": { "droplet_limit": 0, # The total number of Droplets current user or team may have active at one time. Required. "email": "str", # The email address used by the current user to register for DigitalOcean. Required. "email_verified": False, # Default value is False. If true, the user has verified their account via email. False otherwise. Required. "floating_ip_limit": 0, # The total number of Floating IPs the current user or team may have. Required. "status": "active", # Default value is "active". This value is one of "active", "warning" or "locked". Known values are: "active", "warning", and "locked". "status_message": "str", # A human-readable message giving more details about the status of the account. Required. "uuid": "str", # The unique universal identifier for the current user. Required. "name": "str", # Optional. The display name for the current user. "team": { "name": "str", # Optional. The name for the current team. "uuid": "str" # Optional. The unique universal identifier for the current team. } } }
- class pydo.operations.ActionsOperations(*args, **kwargs)
Bases:
object
Warning
DO NOT instantiate this class directly.
Instead, you should access the following operations through
GeneratedClient
’sactions
attribute.- get(action_id: int, **kwargs: Any) MutableMapping[str, Any]
Retrieve an Existing Action.
To retrieve a specific action object, send a GET request to
/v2/actions/$ACTION_ID
.- Parameters:
action_id (int) – A unique numeric ID that can be used to identify and reference an action. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "action": { "completed_at": "2020-02-20 00:00:00", # Optional. A time value given in ISO8601 combined date and time format that represents when the action was completed. "id": 0, # Optional. A unique numeric ID that can be used to identify and reference an action. "region": { "available": bool, # This is a boolean value that represents whether new Droplets can be created in this region. Required. "features": {}, # This attribute is set to an array which contains features available in this region. Required. "name": "str", # The display name of the region. This will be a full name that is used in the control panel and other interfaces. Required. "sizes": {}, # This attribute is set to an array which contains the identifying slugs for the sizes available in this region. Required. "slug": "str" # A human-readable string that is used as a unique identifier for each region. Required. }, "region_slug": {}, # Optional. Any object. "resource_id": 0, # Optional. A unique identifier for the resource that the action is associated with. "resource_type": "str", # Optional. The type of resource that the action is associated with. "started_at": "2020-02-20 00:00:00", # Optional. A time value given in ISO8601 combined date and time format that represents when the action was initiated. "status": "in-progress", # Optional. Default value is "in-progress". The current status of the action. This can be "in-progress", "completed", or "errored". Known values are: "in-progress", "completed", and "errored". "type": "str" # Optional. This is the type of action that the object represents. For example, this could be "transfer" to represent the state of an image transfer action. } } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- list(*, per_page: int = 20, page: int = 1, **kwargs: Any) MutableMapping[str, Any]
List All Actions.
This will be the entire list of actions taken on your account, so it will be quite large. As with any large collection returned by the API, the results will be paginated with only 20 on each page by default.
- Parameters:
per_page (int) – Number of items returned per page. Default value is 20.
page (int) – Which ‘page’ of paginated results to return. Default value is 1.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "meta": { "total": 0 # Optional. Number of objects returned by the request. }, "actions": [ { "completed_at": "2020-02-20 00:00:00", # Optional. A time value given in ISO8601 combined date and time format that represents when the action was completed. "id": 0, # Optional. A unique numeric ID that can be used to identify and reference an action. "region": { "available": bool, # This is a boolean value that represents whether new Droplets can be created in this region. Required. "features": {}, # This attribute is set to an array which contains features available in this region. Required. "name": "str", # The display name of the region. This will be a full name that is used in the control panel and other interfaces. Required. "sizes": {}, # This attribute is set to an array which contains the identifying slugs for the sizes available in this region. Required. "slug": "str" # A human-readable string that is used as a unique identifier for each region. Required. }, "region_slug": {}, # Optional. Any object. "resource_id": 0, # Optional. A unique identifier for the resource that the action is associated with. "resource_type": "str", # Optional. The type of resource that the action is associated with. "started_at": "2020-02-20 00:00:00", # Optional. A time value given in ISO8601 combined date and time format that represents when the action was initiated. "status": "in-progress", # Optional. Default value is "in-progress". The current status of the action. This can be "in-progress", "completed", or "errored". Known values are: "in-progress", "completed", and "errored". "type": "str" # Optional. This is the type of action that the object represents. For example, this could be "transfer" to represent the state of an image transfer action. } ], "links": { "pages": {} } }
- class pydo.operations.AppsOperations(*args, **kwargs)
Bases:
object
Warning
DO NOT instantiate this class directly.
Instead, you should access the following operations through
GeneratedClient
’sapps
attribute.- assign_alert_destinations(app_id: str, alert_id: str, body: JSON, *, content_type: str = 'application/json', **kwargs: Any) JSON
- assign_alert_destinations(app_id: str, alert_id: str, body: IO[bytes], *, content_type: str = 'application/json', **kwargs: Any) JSON
Update destinations for alerts.
Updates the emails and slack webhook destinations for app alerts. Emails must be associated to a user with access to the app.
- Parameters:
app_id (str) – The app ID. Required.
alert_id (str) – The alert ID. Required.
body (JSON or IO[bytes]) – Is either a JSON type or a IO[bytes] type. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# JSON input template you can fill out and use as your body input. body = { "emails": [ "" # Optional. Default value is "". ], "slack_webhooks": [ { "channel": "str", # Optional. Name of the Slack Webhook Channel. "url": "str" # Optional. URL of the Slack webhook. } ] } # response body for status code(s): 200 response == { "alert": { "component_name": "str", # Optional. Name of component the alert belongs to. "emails": [ "" # Optional. Default value is "". Emails for alerts to go to. ], "id": "str", # Optional. The ID of the alert. "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "CONFIGURING", "ACTIVE", and "ERROR". "progress": { "steps": [ { "ended_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN" # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". } ] }, "slack_webhooks": [ { "channel": "str", # Optional. Name of the Slack Webhook Channel. "url": "str" # Optional. URL of the Slack webhook. } ], "spec": { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } } } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- cancel_deployment(app_id: str, deployment_id: str, **kwargs: Any) MutableMapping[str, Any]
Cancel a Deployment.
Immediately cancel an in-progress deployment.
- Parameters:
app_id (str) – The app ID. Required.
deployment_id (str) – The deployment ID. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] } } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- commit_rollback(app_id: str, **kwargs: Any) Optional[MutableMapping[str, Any]]
Commit App Rollback.
Commit an app rollback. This action permanently applies the rollback and unpins the app to resume new deployments.
- Parameters:
app_id (str) – The app ID. Required.
- Returns:
JSON object or None
- Return type:
JSON or None
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- create(body: JSON, *, content_type: str = 'application/json', **kwargs: Any) JSON
- create(body: IO[bytes], *, content_type: str = 'application/json', **kwargs: Any) JSON
Create a New App.
Create a new app by submitting an app specification. For documentation on app specifications (
AppSpec
objects), please refer to the product documentation.- Parameters:
body (JSON or IO[bytes]) – Is either a JSON type or a IO[bytes] type. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# JSON input template you can fill out and use as your body input. body = { "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "project_id": "str" # Optional. The ID of the project the app should be assigned to. If omitted, it will be assigned to your default project. } # response body for status code(s): 200 response == { "app": { "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "active_deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] }, "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the app. "dedicated_ips": [ { "id": "str", # Optional. The ID of the dedicated egress IP. "ip": "str", # Optional. The IP address of the dedicated egress IP. "status": "UNKNOWN" # Optional. Default value is "UNKNOWN". The status of the dedicated egress IP. Known values are: "UNKNOWN", "ASSIGNING", "ASSIGNED", and "REMOVED". } ], "default_ingress": "str", # Optional. The default hostname on which the app is accessible. "domains": [ { "certificate_expires_at": "2020-02-20 00:00:00", # Optional. Current SSL certificate expiration time. "id": "str", # Optional. The ID of the domain. "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "CONFIGURING", "ACTIVE", and "ERROR". "progress": { "steps": [ {} # Optional. The steps of the domain's progress. ] }, "rotate_validation_records": bool, # Optional. Validation values have changed and require manual intervention. "spec": { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. }, "validations": [ { "txt_name": "str", # Optional. TXT record name. "txt_value": "str" # Optional. TXT record value. } ] } ], "id": "str", # Optional. The ID of the application. "in_progress_deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] }, "last_deployment_created_at": "2020-02-20 00:00:00", # Optional. The creation time of the last deployment. "live_domain": "str", # Optional. The live domain of the app. "live_url": "str", # Optional. The live URL of the app. "live_url_base": "str", # Optional. The live URL base of the app, the URL excluding the path. "owner_uuid": "str", # Optional. The ID of the account to which the application belongs. "pending_deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] }, "pinned_deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] }, "project_id": "str", # Optional. The ID of the project the app is assigned to. This will be empty if there is a lookup failure. "region": { "continent": "str", # Optional. The continent that this region is in. "data_centers": [ "str" # Optional. Data centers that are in this region. ], "default": bool, # Optional. Whether or not the region is presented as the default. "disabled": bool, # Optional. Whether or not the region is open for new apps. "flag": "str", # Optional. The flag of this region. "label": "str", # Optional. A human-readable name of the region. "reason": "str", # Optional. Reason that this region is not available. "slug": "str" # Optional. The slug form of the region name. }, "tier_slug": "str", # Optional. The current pricing tier slug of the app. "updated_at": "2020-02-20 00:00:00" # Optional. Time of the app's last configuration update. } }
- create_deployment(app_id: str, body: JSON, *, content_type: str = 'application/json', **kwargs: Any) JSON
- create_deployment(app_id: str, body: IO[bytes], *, content_type: str = 'application/json', **kwargs: Any) JSON
Create an App Deployment.
Creating an app deployment will pull the latest changes from your repository and schedule a new deployment for your app.
- Parameters:
app_id (str) – The app ID. Required.
body (JSON or IO[bytes]) – Is either a JSON type or a IO[bytes] type. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# JSON input template you can fill out and use as your body input. body = { "force_build": bool # Optional. Indicates whether to force a build of app from source even if an existing cached build is suitable for re-use. } # response body for status code(s): 200 response == { "deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] } } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- create_rollback(app_id: str, body: JSON, *, content_type: str = 'application/json', **kwargs: Any) JSON
- create_rollback(app_id: str, body: IO[bytes], *, content_type: str = 'application/json', **kwargs: Any) JSON
Rollback App.
Rollback an app to a previous deployment. A new deployment will be created to perform the rollback. The app will be pinned to the rollback deployment preventing any new deployments from being created, either manually or through Auto Deploy on Push webhooks. To resume deployments, the rollback must be either committed or reverted.
It is recommended to use the Validate App Rollback endpoint to double check if the rollback is valid and if there are any warnings.
- Parameters:
app_id (str) – The app ID. Required.
body (JSON or IO[bytes]) – Is either a JSON type or a IO[bytes] type. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# JSON input template you can fill out and use as your body input. body = { "deployment_id": "str", # Optional. The ID of the deployment to rollback to. "skip_pin": bool # Optional. Whether to skip pinning the rollback deployment. If false, the rollback deployment will be pinned and any new deployments including Auto Deploy on Push hooks will be disabled until the rollback is either manually committed or reverted via the CommitAppRollback or RevertAppRollback endpoints respectively. If true, the rollback will be immediately committed and the app will remain unpinned. } # response body for status code(s): 200 response == { "deployment": { "cause": "str", # Optional. What caused this deployment to be created. "cloned_from": "str", # Optional. The ID of a previous deployment that this deployment was cloned from. "created_at": "2020-02-20 00:00:00", # Optional. The creation time of the deployment. "functions": [ { "name": "str", # Optional. The name of this functions component. "namespace": "str", # Optional. The namespace where the functions are deployed. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this functions component. } ], "id": "str", # Optional. The ID of the deployment. "jobs": [ { "name": "str", # Optional. The name of this job. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this job. } ], "phase": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING_BUILD", "BUILDING", "PENDING_DEPLOY", "DEPLOYING", "ACTIVE", "SUPERSEDED", "ERROR", and "CANCELED". "phase_last_updated_at": "2020-02-20 00:00:00", # Optional. When the deployment phase was last updated. "progress": { "error_steps": 0, # Optional. Number of unsuccessful steps. "pending_steps": 0, # Optional. Number of pending steps. "running_steps": 0, # Optional. Number of currently running steps. "steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "success_steps": 0, # Optional. Number of successful steps. "summary_steps": [ { "component_name": "str", # Optional. The component name that this step is associated with. "ended_at": "2020-02-20 00:00:00", # Optional. The end time of this step. "message_base": "str", # Optional. The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: ``message_base`` = "Building service" ``component_name`` = "api". "name": "str", # Optional. The name of this step. "reason": { "code": "str", # Optional. The error code. "message": "str" # Optional. The error message. }, "started_at": "2020-02-20 00:00:00", # Optional. The start time of this step. "status": "UNKNOWN", # Optional. Default value is "UNKNOWN". Known values are: "UNKNOWN", "PENDING", "RUNNING", "ERROR", and "SUCCESS". "steps": [ {} # Optional. Child steps of this step. ] } ], "total_steps": 0 # Optional. Total number of steps. }, "services": [ { "name": "str", # Optional. The name of this service. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this service. } ], "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "drain_seconds": 0, # Optional. The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. (Default 15). "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "static_sites": [ { "build_command": "str", # Optional. An optional build command to run while building this component from source. "catchall_document": "str", # Optional. The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of ``catchall_document`` or ``error_document`` can be set. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "error_document": "404.html", # Optional. Default value is "404.html". The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one. "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "index_document": "index.html", # Optional. Default value is "index.html". The name of the index document to use when serving this static site. Default: index.html. "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "output_dir": "str", # Optional. An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: ``_static``"" , ``dist``"" , ``public``"" , ``build``. "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "workers": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ] }, "static_sites": [ { "name": "str", # Optional. The name of this static site. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this static site. } ], "tier_slug": "str", # Optional. The current pricing tier slug of the deployment. "updated_at": "2020-02-20 00:00:00", # Optional. When the deployment was last updated. "workers": [ { "name": "str", # Optional. The name of this worker. "source_commit_hash": "str" # Optional. The commit hash of the repository that was used to build this worker. } ] } } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- delete(id: str, **kwargs: Any) MutableMapping[str, Any]
Delete an App.
Delete an existing app. Once deleted, all active deployments will be permanently shut down and the app deleted. If needed, be sure to back up your app specification so that you may re-create it at a later time.
- Parameters:
id (str) – The ID of the app. Required.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "id": "str" # Optional. The ID of the app that was deleted. } # response body for status code(s): 404 response == { "id": "str", # A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be "not_found.". Required. "message": "str", # A message providing additional information about the error, including details to help resolve it when possible. Required. "request_id": "str" # Optional. Optionally, some endpoints may include a request ID that should be provided when reporting bugs or opening support tickets to help identify the issue. }
- get(id: str, *, name: Optional[str] = None, **kwargs: Any) MutableMapping[str, Any]
Retrieve an Existing App.
Retrieve details about an existing app by either its ID or name. To retrieve an app by its name, do not include an ID in the request path. Information about the current active deployment as well as any in progress ones will also be included in the response.
- Parameters:
id (str) – The ID of the app. Required.
name (str) – The name of the app to retrieve. Default value is None.
- Returns:
JSON object
- Return type:
JSON
- Raises:
HttpResponseError –
- Example:
# response body for status code(s): 200 response == { "app": { "spec": { "name": "str", # The name of the app. Must be unique across all apps in the same account. Required. "databases": [ { "name": "str", # The database's name. The name must be unique across all components within the same app and cannot use capital letters. Required. "cluster_name": "str", # Optional. The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned. "db_name": "str", # Optional. The name of the MySQL or PostgreSQL database to configure. "db_user": "str", # Optional. The name of the MySQL or PostgreSQL user to configure. "engine": "UNSET", # Optional. Default value is "UNSET". * MYSQL: MySQL * PG: PostgreSQL * REDIS: Redis * MONGODB: MongoDB * KAFKA: Kafka * OPENSEARCH: OpenSearch. Known values are: "UNSET", "MYSQL", "PG", "REDIS", "MONGODB", "KAFKA", and "OPENSEARCH". "production": bool, # Optional. Whether this is a production or dev database. "version": "str" # Optional. The version of the database engine. } ], "domains": [ { "domain": "str", # The hostname for the domain. Required. "minimum_tls_version": "str", # Optional. The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: ``"1.2"`` or ``"1.3"``. Known values are: "1.2" and "1.3". "type": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * DEFAULT: The default ``.ondigitalocean.app`` domain assigned to this app * PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. * ALIAS: A non-primary domain. Known values are: "UNSPECIFIED", "DEFAULT", "PRIMARY", and "ALIAS". "wildcard": bool, # Optional. Indicates whether the domain includes all sub-domains, in addition to the given domain. "zone": "str" # Optional. Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account. For example, If the domain you are adding is ``app.domain.com``"" , the zone could be ``domain.com``. } ], "egress": { "type": "AUTOASSIGN" # Optional. Default value is "AUTOASSIGN". The app egress type. Known values are: "AUTOASSIGN" and "DEDICATED_IP". }, "functions": [ { "name": "str", # The name. Must be unique across all components within the same app. Required. "alerts": [ { "disabled": bool, # Optional. Is the alert disabled?. "operator": "UNSPECIFIED_OPERATOR", # Optional. Default value is "UNSPECIFIED_OPERATOR". Known values are: "UNSPECIFIED_OPERATOR", "GREATER_THAN", and "LESS_THAN". "rule": "UNSPECIFIED_RULE", # Optional. Default value is "UNSPECIFIED_RULE". Known values are: "UNSPECIFIED_RULE", "CPU_UTILIZATION", "MEM_UTILIZATION", "RESTART_COUNT", "DEPLOYMENT_FAILED", "DEPLOYMENT_LIVE", "DOMAIN_FAILED", "DOMAIN_LIVE", "FUNCTIONS_ACTIVATION_COUNT", "FUNCTIONS_AVERAGE_DURATION_MS", "FUNCTIONS_ERROR_RATE_PER_MINUTE", "FUNCTIONS_AVERAGE_WAIT_TIME_MS", "FUNCTIONS_ERROR_COUNT", and "FUNCTIONS_GB_RATE_PER_SECOND". "value": 0.0, # Optional. Threshold value for alert. "window": "UNSPECIFIED_WINDOW" # Optional. Default value is "UNSPECIFIED_WINDOW". Known values are: "UNSPECIFIED_WINDOW", "FIVE_MINUTES", "TEN_MINUTES", "THIRTY_MINUTES", and "ONE_HOUR". } ], "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "routes": [ { "path": "str", # Optional. (Deprecated - Use Ingress Rules instead). An HTTP path prefix. Paths must start with / and must be unique across all components within an app. "preserve_path_prefix": bool # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. } ], "source_dir": "str" # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. } ], "ingress": { "rules": [ { "component": { "name": "str", # The name of the component to route to. Required. "preserve_path_prefix": "str", # Optional. An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If this value is ``true``"" , the path will remain ``/api/list``. Note: this is not applicable for Functions Components and is mutually exclusive with ``rewrite``. "rewrite": "str" # Optional. An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with ``path=/api`` will have requests to ``/api/list`` trimmed to ``/list``. If you specified the rewrite to be ``/v1/``"" , requests to ``/api/list`` would be rewritten to ``/v1/list``. Note: this is mutually exclusive with ``preserve_path_prefix``. }, "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "match": { "path": { "prefix": "str" # Prefix-based match. For example, ``/api`` will match ``/api``"" , ``/api/``"" , and any nested paths such as ``/api/v1/endpoint``. Required. } }, "redirect": { "authority": "str", # Optional. The authority/host to redirect to. This can be a hostname or IP address. Note: use ``port`` to set the port. "port": 0, # Optional. The port to redirect to. "redirect_code": 0, # Optional. The redirect code to use. Defaults to ``302``. Supported values are 300, 301, 302, 303, 304, 307, 308. "scheme": "str", # Optional. The scheme to redirect to. Supported values are ``http`` or ``https``. Default: ``https``. "uri": "str" # Optional. An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched. } } ] }, "jobs": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "kind": "UNSPECIFIED", # Optional. Default value is "UNSPECIFIED". * UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. * PRE_DEPLOY: Indicates a job that runs before an app deployment. * POST_DEPLOY: Indicates a job that runs after an app deployment. * FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. Known values are: "UNSPECIFIED", "PRE_DEPLOY", "POST_DEPLOY", and "FAILED_DEPLOY". "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components within the same app. "run_command": "str", # Optional. An optional run command to override the component's default. "source_dir": "str", # Optional. An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo. "termination": { "grace_period_seconds": 0 # Optional. The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. (Default 120). } } ], "region": "str", # Optional. The slug form of the geographical origin of the app. Default: ``nearest available``. Known values are: "ams", "nyc", "fra", "sfo", "sgp", "blr", "tor", "lon", and "syd". "services": [ { "autoscaling": { "max_instance_count": 0, # Optional. The maximum amount of instances for this component. Must be more than min_instance_count. "metrics": { "cpu": { "percent": 80 # Optional. Default value is 80. The average target CPU utilization for the component. } }, "min_instance_count": 0 # Optional. The minimum amount of instances for this component. Must be less than max_instance_count. }, "build_command": "str", # Optional. An optional build command to run while building this component from source. "cors": { "allow_credentials": bool, # Optional. Whether browsers should expose the response to the client-side JavaScript code when the request"u2019s credentials mode is include. This configures the ``Access-Control-Allow-Credentials`` header. "allow_headers": [ "str" # Optional. The set of allowed HTTP request headers. This configures the ``Access-Control-Allow-Headers`` header. ], "allow_methods": [ "str" # Optional. The set of allowed HTTP methods. This configures the ``Access-Control-Allow-Methods`` header. ], "allow_origins": [ { "exact": "str", # Optional. Exact string match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "prefix": "str", # Optional. Prefix-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. "regex": "str" # Optional. RE2 style regex-based match. Only 1 of ``exact``"" , ``prefix``"" , or ``regex`` must be set. For more information about RE2 syntax, see: https://github.com/google/re2/wiki/Syntax. } ], "expose_headers": [ "str" # Optional. The set of HTTP response headers that browsers are allowed to access. This configures the ``Access-Control-Expose-Headers`` header. ], "max_age": "str" # Optional. An optional duration specifying how long browsers can cache the results of a preflight request. This configures the ``Access-Control-Max-Age`` header. }, "dockerfile_path": "str", # Optional. The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks. "environment_slug": "str", # Optional. An environment slug describing the type of this app. For a full list, please refer to `the product documentation <https://docs.digitalocean.com/products/app-platform/>`_. "envs": [ { "key": "str", # The variable name. Required. "scope": "RUN_AND_BUILD_TIME", # Optional. Default value is "RUN_AND_BUILD_TIME". * RUN_TIME: Made available only at run-time * BUILD_TIME: Made available only at build-time * RUN_AND_BUILD_TIME: Made available at both build and run-time. Known values are: "UNSET", "RUN_TIME", "BUILD_TIME", and "RUN_AND_BUILD_TIME". "type": "GENERAL", # Optional. Default value is "GENERAL". * GENERAL: A plain-text environment variable * SECRET: A secret encrypted environment variable. Known values are: "GENERAL" and "SECRET". "value": "str" # Optional. The value. If the type is ``SECRET``"" , the value will be encrypted on first submission. On following submissions, the encrypted value should be used. } ], "git": { "branch": "str", # Optional. The name of the branch to use. "repo_clone_url": "str" # Optional. The clone URL of the repo. Example: ``https://github.com/digitalocean/sample-golang.git``. }, "github": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "gitlab": { "branch": "str", # Optional. The name of the branch to use. "deploy_on_push": bool, # Optional. Whether to automatically deploy new commits made to the repo. "repo": "str" # Optional. The name of the repo in the format owner/repo. Example: ``digitalocean/sample-golang``. }, "health_check": { "failure_threshold": 0, # Optional. The number of failed health checks before considered unhealthy. "http_path": "str", # Optional. The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead. "initial_delay_seconds": 0, # Optional. The number of seconds to wait before beginning health checks. "period_seconds": 0, # Optional. The number of seconds to wait between health checks. "port": 0, # Optional. The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port. "success_threshold": 0, # Optional. The number of successful health checks before considered healthy. "timeout_seconds": 0 # Optional. The number of seconds after which the check times out. }, "http_port": 0, # Optional. The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name ``PORT``"" , one will be automatically added with its value set to the value of this field. "image": { "deploy_on_push": { "enabled": bool # Optional. Whether to automatically deploy new images. Can only be used for images hosted in DOCR and can only be used with an image tag, not a specific digest. }, "digest": "str", # Optional. The image digest. Cannot be specified if tag is provided. "registry": "str", # Optional. The registry name. Must be left empty for the ``DOCR`` registry type. "registry_credentials": "str", # Optional. The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. * "$username:$access_token" for registries of type ``DOCKER_HUB``. * "$username:$access_token" for registries of type ``GHCR``. "registry_type": "str", # Optional. * DOCKER_HUB: The DockerHub container registry type. * DOCR: The DigitalOcean container registry type. * GHCR: The Github container registry type. Known values are: "DOCKER_HUB", "DOCR", and "GHCR". "repository": "str", # Optional. The repository name. "tag": "latest" # Optional. Default value is "latest". The repository tag. Defaults to ``latest`` if not provided and no digest is provided. Cannot be specified if digest is provided. }, "instance_count": 1, # Optional. Default value is 1. The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used. "instance_size_slug": "apps-s-1vcpu-0.5gb", # Optional. Default value is "apps-s-1vcpu-0.5gb". The instance size to use for this component. Default: ``apps-s-1vcpu-0.5gb``. Known values are: "apps-s-1vcpu-0.5gb", "apps-s-1vcpu-1gb-fixed", "apps-s-1vcpu-1gb", "apps-s-1vcpu-2gb", "apps-s-2vcpu-4gb", "apps-d-1vcpu-0.5gb", "apps-d-1vcpu-1gb", "apps-d-1vcpu-2gb", "apps-d-1vcpu-4gb", "apps-d-2vcpu-4gb", "apps-d-2vcpu-8gb", "apps-d-4vcpu-8gb", "apps-d-4vcpu-16gb", and "apps-d-8vcpu-32gb". "internal_ports": [ 0 # Optional. The ports on which this service will listen for internal traffic. ], "log_destinations": [ { "name": "str", # Required. "datadog": { "api_key": "str", # Datadog API key. Required. "endpoint": "str" # Optional. Datadog HTTP log intake endpoint. }, "logtail": { "token": "str" # Optional. Logtail token. }, "open_search": { "basic_auth": { "password": {}, # Optional. Password for user defined in User. Is required when ``endpoint`` is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster. "user": "str" # Optional. Username to authenticate with. Only required when ``endpoint`` is set. Defaults to ``doadmin`` when ``cluster_name`` is set. }, "cluster_name": "str", # Optional. The name of a DigitalOcean DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if ``endpoint`` is also specified. "endpoint": "str", # Optional. OpenSearch API Endpoint. Only HTTPS is supported. Format: https://:code:`<host>`::code:`<port>`. Cannot be specified if ``cluster_name`` is also specified. "index_name": "logs" # Optional. Default value is "logs". The index name to use for the logs. If not set, the default index name is "logs". }, "papertrail": { "endpoint": "str" # Papertrail syslog endpoint. Required. } } ], "name": "str", # Optional. The name. Must be unique across all components w