Install or update an app in Dynatrace with the AppEngine Registry API by uploading a zipped app bundle for a Dynatrace or custom app.
| POST | SaaS | https://{your-environment-id}.apps.dynatrace.com/registry/v1/apps |
You provide the app bundle in the request body, and the app ID identifies the app to install or update. The ID must start with a namespace and a dot, such as dynatrace. for Dynatrace apps or my. for custom apps. The operation returns 202 Accepted when the new app will be installed or updated.
To execute this request, you need a platform token or OAuth access token with app-engine:apps:install scope. To learn how to obtain and use it, see Tokens and authentication.
| Parameter | Type | Description | In | Required |
|---|---|---|---|---|
| body | string | The zipped app bundle | body | Optional |
RequestBody object| Code | Type | Description |
|---|---|---|
| 202 | App | Accepted; new app will be installed/updated |
| 400 | Error | Bad Request |
| 4XX | Error | Client side error. |
| 5XX | Error | Server side error. |
ErrorEnvelope objectError response for all 4xx and 5xx errors.
| Element | Type | Description |
|---|---|---|
| error | Error | Contains information for 4xx and 5xx errors. |
Error objectContains information for 4xx and 5xx errors.
| Element | Type | Description |
|---|---|---|
| code | integer | The HTTP status code |
| message | string | The error message |
| details | Error | Contains details for 4xx and 5xx errors. |
| help | string | Additional information related to the error |
| retryAfterSeconds | integer | Seconds to wait until the next retry |
ErrorDetails objectContains details for 4xx and 5xx errors.
| Element | Type | Description |
|---|---|---|
| errorRef | string | Generated unique value for 5xx errors. |
| traceId | string | OpenTelemetry trace id of the trace where error occurs. |
| errorCode | string | An optional error code that contains more detailed error information than the HTTP response code alone. Possible error codes:
The element can hold these values
|
| errorCodeProperties | object | Additional properties related to the provided error code |
| constraintViolations | Constraint | A list of constraint violations |
| missingScopes | string[] | The OAuth scopes the authorization token would need to carry for this request. |
| missingPermissions | string[] | The IAM permissions the authorization token would need to be granted for this request. |
ConstraintViolation objectContains information about a constraint violation caused by invalid input.
| Element | Type | Description |
|---|---|---|
| path | string | The path of the property that caused the constraint violation |
| message | string | The error message |
| errorCode | string | An optional error code that contains more detailed error information. Possible error codes:
The element can hold these values
|
| errorCodeProperties | object | Additional properties related to the provided error code. |
{"error": {"code": 400,"message": "Manifest of app 'my.custom.app' violates schema","details": {"constraintViolations": [{"path": "/dependencies/0/version","message": "Incompatible dependency version: '/platform/storage/query/v1' in version '99.3.0' is incompatible with the available dependency version '1.14.0'","errorCode": "DependencyVersionIncompatible","errorCodeProperties": {"dependency": "/platform/storage/query/v1","incompatibleVersion": "99.3.0","availableVersion": "1.14.0"}}]}}}