Appaloft Docsv685dc5b2b9b264bb9b5749efdc50a341b407289b
Reference

OpenAPI reference

Generated OpenAPI reference for Appaloft business operations.

GET/bootstrap/auth/status

Response Body

application/json

curl -X GET "https://example.com/bootstrap/auth/status"
{
  "bootstrapRequired": true,
  "firstAdminConfigured": true,
  "organizationConfigured": true,
  "loginMethods": [
    {
      "key": "local-password",
      "configured": true,
      "enabled": true,
      "reason": "string"
    }
  ],
  "firstAdminEmail": "string",
  "loginUrl": "string",
  "organizationId": "string",
  "organizationSlug": "string",
  "nextSteps": [
    "string"
  ]
}
POST/bootstrap/auth/first-admin

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/bootstrap/auth/first-admin" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com",    "displayName": "string"  }'
{
  "bootstrapRequired": false,
  "created": true,
  "email": "string",
  "loginMethods": [
    {
      "key": "local-password",
      "configured": true,
      "enabled": true,
      "reason": "string"
    }
  ],
  "organizationId": "string",
  "organizationSlug": "string",
  "userId": "string",
  "generatedPassword": "string",
  "loginUrl": "string"
}
POST/capabilities/query

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/capabilities/query" \  -H "Content-Type: application/json" \  -d '{    "queries": [      {        "operationKey": "string"      }    ]  }'
{
  "capabilities": [
    {
      "operationKey": "string",
      "allowed": true,
      "mode": "unrestricted",
      "hint": "string",
      "reason": "string",
      "details": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
POST/entitlements/query

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/entitlements/query" \  -H "Content-Type: application/json" \  -d '{    "queries": [      {        "capabilityKey": "string"      }    ]  }'
{
  "entitlements": [
    {
      "capabilityKey": "string",
      "entitled": true,
      "status": "entitled",
      "mode": "restricted",
      "hint": "string",
      "reason": "string",
      "source": "string",
      "details": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
GET/usage-intents

Query Parameters

tenantId?string
Length1 <= length
accountId?string
Length1 <= length
organizationId?string
Length1 <= length
capabilityKey?string
Length1 <= length
source?string
Length1 <= length
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/usage-intents"
{
  "records": [
    {
      "schemaVersion": "usage-intent.record/v1",
      "id": "string",
      "idempotencyKey": "string",
      "capabilityKey": "string",
      "status": "accepted",
      "reason": "string",
      "source": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "property1": "string",
        "property2": "string"
      },
      "quantity": {
        "value": 1,
        "unit": "string"
      },
      "occurredAt": "string",
      "recordedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
POST/usage-intents

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/usage-intents" \  -H "Content-Type: application/json" \  -d '{    "idempotencyKey": "string",    "capabilityKey": "string",    "source": "string"  }'
{
  "result": {
    "idempotencyKey": "string",
    "capabilityKey": "string",
    "accepted": true,
    "duplicate": true,
    "status": "accepted",
    "reason": "string",
    "source": "string",
    "record": {
      "schemaVersion": "usage-intent.record/v1",
      "id": "string",
      "idempotencyKey": "string",
      "capabilityKey": "string",
      "status": "accepted",
      "reason": "string",
      "source": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "property1": "string",
        "property2": "string"
      },
      "quantity": {
        "value": 1,
        "unit": "string"
      },
      "occurredAt": "string",
      "recordedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    },
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
GET/deployment-overlays

Query Parameters

tenantId?string
Length1 <= length
accountId?string
Length1 <= length
organizationId?string
Length1 <= length
operationKey?string
Length1 <= length
capabilityKey?string
Length1 <= length
source?string
Length1 <= length
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/deployment-overlays"
{
  "records": [
    {
      "schemaVersion": "deployment-overlay.decision/v1",
      "id": "string",
      "operationKey": "string",
      "decision": "enabled",
      "reason": "string",
      "source": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "property1": "string",
        "property2": "string"
      },
      "capabilityKey": "string",
      "decidedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
POST/deployment-overlays

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployment-overlays" \  -H "Content-Type: application/json" \  -d '{    "operationKey": "string",    "source": "string"  }'
{
  "result": {
    "operationKey": "string",
    "decision": "enabled",
    "allowed": true,
    "reason": "string",
    "source": "string",
    "record": {
      "schemaVersion": "deployment-overlay.decision/v1",
      "id": "string",
      "operationKey": "string",
      "decision": "enabled",
      "reason": "string",
      "source": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "property1": "string",
        "property2": "string"
      },
      "capabilityKey": "string",
      "decidedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    },
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
GET/route-surfaces

Query Parameters

tenantId?string
Length1 <= length
accountId?string
Length1 <= length
organizationId?string
Length1 <= length
operationKey?string
Length1 <= length
capabilityKey?string
Length1 <= length
source?string
Length1 <= length
surfaceKind?string
Length1 <= length
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/route-surfaces"
{
  "records": [
    {
      "schemaVersion": "route-surface.decision/v1",
      "id": "string",
      "operationKey": "string",
      "decision": "enabled",
      "reason": "string",
      "source": "string",
      "surfaceKind": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "domainId": "string",
        "routeId": "string",
        "staticArtifactId": "string",
        "property1": "string",
        "property2": "string"
      },
      "capabilityKey": "string",
      "decidedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
POST/route-surfaces

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/route-surfaces" \  -H "Content-Type: application/json" \  -d '{    "operationKey": "string",    "source": "string",    "surfaceKind": "string"  }'
{
  "result": {
    "operationKey": "string",
    "decision": "enabled",
    "allowed": true,
    "reason": "string",
    "source": "string",
    "surfaceKind": "string",
    "record": {
      "schemaVersion": "route-surface.decision/v1",
      "id": "string",
      "operationKey": "string",
      "decision": "enabled",
      "reason": "string",
      "source": "string",
      "surfaceKind": "string",
      "tenantId": "string",
      "accountId": "string",
      "organizationId": "string",
      "actor": {
        "kind": "string",
        "id": "string",
        "userId": "string",
        "email": "string"
      },
      "resourceRefs": {
        "organizationId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "serverId": "string",
        "destinationId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "domainId": "string",
        "routeId": "string",
        "staticArtifactId": "string",
        "property1": "string",
        "property2": "string"
      },
      "capabilityKey": "string",
      "decidedAt": "string",
      "attributes": {
        "property1": null,
        "property2": null
      },
      "details": {
        "property1": null,
        "property2": null
      }
    },
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
GET/deploy-tokens

Query Parameters

organizationId*string
Length1 <= length
status?string
Value in"active" | "revoked"
resourceId?string
Length1 <= length
repositoryFullName?string
Length1 <= length
limit?integer
Range0 < value <= 100

Response Body

application/json

curl -X GET "https://example.com/deploy-tokens?organizationId=string"
{
  "items": [
    {
      "tokenId": "string",
      "organizationId": "string",
      "displayName": "string",
      "status": "active",
      "secretSuffix": "string",
      "scope": {
        "deploymentTargetIds": [
          "string"
        ],
        "environmentIds": [
          "string"
        ],
        "projectIds": [
          "string"
        ],
        "repositoryFullNames": [
          "string"
        ],
        "resourceIds": [
          "string"
        ],
        "workflowCommands": [
          "source-link-deploy"
        ]
      },
      "createdAt": "string",
      "expiresAt": "string",
      "lastUsedAt": "string",
      "rotatedAt": "string",
      "revokedAt": "string"
    }
  ]
}
POST/deploy-tokens

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deploy-tokens" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string",    "displayName": "string",    "scope": {      "workflowCommands": [        "preview-cleanup"      ]    }  }'
{
  "tokenId": "string",
  "token": "string",
  "organizationId": "string",
  "displayName": "string",
  "secretSuffix": "string",
  "scopes": {
    "deploymentTargetIds": [
      "string"
    ],
    "environmentIds": [
      "string"
    ],
    "projectIds": [
      "string"
    ],
    "repositoryFullNames": [
      "string"
    ],
    "resourceIds": [
      "string"
    ],
    "workflowCommands": [
      "source-link-deploy"
    ]
  },
  "createdAt": "string",
  "expiresAt": "string"
}
GET/deploy-tokens/{tokenId}

Path Parameters

tokenId*string
Length1 <= length

Query Parameters

organizationId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/deploy-tokens/string?organizationId=string"
{
  "tokenId": "string",
  "organizationId": "string",
  "displayName": "string",
  "status": "active",
  "secretSuffix": "string",
  "scope": {
    "deploymentTargetIds": [
      "string"
    ],
    "environmentIds": [
      "string"
    ],
    "projectIds": [
      "string"
    ],
    "repositoryFullNames": [
      "string"
    ],
    "resourceIds": [
      "string"
    ],
    "workflowCommands": [
      "source-link-deploy"
    ]
  },
  "createdAt": "string",
  "expiresAt": "string",
  "lastUsedAt": "string",
  "rotatedAt": "string",
  "revokedAt": "string"
}
POST/deploy-tokens/{tokenId}/rotate

Path Parameters

tokenId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deploy-tokens/string/rotate" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string",    "confirmation": {      "tokenId": "string"    }  }'
{
  "tokenId": "string",
  "token": "string",
  "rotatedAt": "string",
  "scopes": {
    "deploymentTargetIds": [
      "string"
    ],
    "environmentIds": [
      "string"
    ],
    "projectIds": [
      "string"
    ],
    "repositoryFullNames": [
      "string"
    ],
    "resourceIds": [
      "string"
    ],
    "workflowCommands": [
      "source-link-deploy"
    ]
  }
}
POST/deploy-tokens/{tokenId}/revoke

Path Parameters

tokenId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deploy-tokens/string/revoke" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string",    "confirmation": {      "tokenId": "string"    }  }'
{
  "tokenId": "string",
  "revokedAt": "string"
}
GET/account/profile

Response Body

application/json

curl -X GET "https://example.com/account/profile"
{
  "userId": "string",
  "email": "string",
  "displayName": "string",
  "avatarUrl": "string",
  "emailVerified": true,
  "createdAt": "string",
  "updatedAt": "string"
}
POST/account/profile

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/account/profile" \  -H "Content-Type: application/json" \  -d '{}'
{
  "userId": "string",
  "email": "string",
  "displayName": "string",
  "avatarUrl": "string",
  "emailVerified": true,
  "createdAt": "string",
  "updatedAt": "string"
}
GET/account/sessions

Response Body

application/json

curl -X GET "https://example.com/account/sessions"
{
  "items": [
    {
      "sessionId": "string",
      "userId": "string",
      "clientKind": "web",
      "displayName": "string",
      "createdAt": "string",
      "expiresAt": "string",
      "ipAddress": "string",
      "userAgent": "string",
      "current": true,
      "lastActiveAt": "string"
    }
  ],
  "nextCursor": "string"
}
POST/account/sessions/{sessionId}/revoke

Path Parameters

sessionId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/account/sessions/string/revoke" \  -H "Content-Type: application/json" \  -d '{}'
{
  "sessionId": "string",
  "revokedAt": "string"
}
DELETE/account

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/account" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "userId": "string"    }  }'
{
  "userId": "string",
  "deletedAt": "string"
}
GET/organizations/current-context

Response Body

application/json

curl -X GET "https://example.com/organizations/current-context"
{
  "user": {
    "userId": "string",
    "email": "string",
    "displayName": "string",
    "avatarUrl": "string"
  },
  "currentOrganization": {
    "organizationId": "string",
    "name": "string",
    "slug": "string",
    "role": "admin"
  },
  "organizations": [
    {
      "organizationId": "string",
      "name": "string",
      "slug": "string",
      "role": "admin"
    }
  ],
  "loginMethods": [
    {
      "key": "local-password",
      "configured": true,
      "enabled": true,
      "reason": "string"
    }
  ],
  "permissions": {
    "canInviteMembers": true,
    "canListMembers": true,
    "canManageDeployTokens": true,
    "canRemoveMembers": true,
    "canTransferOwnership": true,
    "canUpdateMemberRoles": true
  }
}
GET/organizations/{organizationId}/profile

Path Parameters

organizationId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/organizations/string/profile"
{
  "organizationId": "string",
  "name": "string",
  "slug": "string",
  "role": "admin",
  "permissions": {
    "canInviteMembers": true,
    "canListMembers": true,
    "canManageDeployTokens": true,
    "canRemoveMembers": true,
    "canTransferOwnership": true,
    "canUpdateMemberRoles": true
  },
  "logoUrl": "string",
  "createdAt": "string",
  "updatedAt": "string"
}
POST/organizations/{organizationId}/profile

Path Parameters

organizationId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/organizations/string/profile" \  -H "Content-Type: application/json" \  -d '{}'
{
  "organizationId": "string",
  "name": "string",
  "slug": "string",
  "role": "admin",
  "permissions": {
    "canInviteMembers": true,
    "canListMembers": true,
    "canManageDeployTokens": true,
    "canRemoveMembers": true,
    "canTransferOwnership": true,
    "canUpdateMemberRoles": true
  },
  "logoUrl": "string",
  "createdAt": "string",
  "updatedAt": "string"
}
DELETE/organizations/{organizationId}

Path Parameters

organizationId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/organizations/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "organizationId": "string"    }  }'
{
  "organizationId": "string",
  "deletedAt": "string"
}
POST/organizations/current-context/switch

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/organizations/current-context/switch" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string"  }'
{
  "user": {
    "userId": "string",
    "email": "string",
    "displayName": "string",
    "avatarUrl": "string"
  },
  "currentOrganization": {
    "organizationId": "string",
    "name": "string",
    "slug": "string",
    "role": "admin"
  },
  "organizations": [
    {
      "organizationId": "string",
      "name": "string",
      "slug": "string",
      "role": "admin"
    }
  ],
  "loginMethods": [
    {
      "key": "local-password",
      "configured": true,
      "enabled": true,
      "reason": "string"
    }
  ],
  "permissions": {
    "canInviteMembers": true,
    "canListMembers": true,
    "canManageDeployTokens": true,
    "canRemoveMembers": true,
    "canTransferOwnership": true,
    "canUpdateMemberRoles": true
  }
}
GET/organizations/{organizationId}/members

Path Parameters

organizationId*string
Length1 <= length

Query Parameters

cursor?string
Length1 <= length
limit?integer
Range0 < value <= 250

Response Body

application/json

curl -X GET "https://example.com/organizations/string/members"
{
  "items": [
    {
      "memberId": "string",
      "userId": "string",
      "role": "admin",
      "joinedAt": "string",
      "avatarUrl": "string",
      "displayName": "string",
      "email": "string",
      "status": "active"
    }
  ],
  "nextCursor": "string"
}
GET/organizations/{organizationId}/invitations

Path Parameters

organizationId*string
Length1 <= length

Query Parameters

status?string
Value in"accepted" | "expired" | "pending" | "revoked"
cursor?string
Length1 <= length
limit?integer
Range0 < value <= 250

Response Body

application/json

curl -X GET "https://example.com/organizations/string/invitations"
{
  "items": [
    {
      "invitationId": "string",
      "organizationId": "string",
      "email": "string",
      "role": "admin",
      "status": "accepted",
      "createdAt": "string",
      "expiresAt": "string",
      "inviter": {
        "userId": "string",
        "displayName": "string",
        "email": "string"
      }
    }
  ],
  "nextCursor": "string"
}
POST/organizations/{organizationId}/invitations

Path Parameters

organizationId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/organizations/string/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com",    "role": "admin"  }'
{
  "invitationId": "string",
  "organizationId": "string",
  "email": "string",
  "role": "admin",
  "status": "accepted",
  "createdAt": "string",
  "expiresAt": "string",
  "inviter": {
    "userId": "string",
    "displayName": "string",
    "email": "string"
  }
}
POST/organizations/{organizationId}/members/{memberId}/role

Path Parameters

organizationId*string
Length1 <= length
memberId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/organizations/string/members/string/role" \  -H "Content-Type: application/json" \  -d '{    "role": "admin"  }'
{
  "memberId": "string",
  "userId": "string",
  "role": "admin",
  "joinedAt": "string",
  "avatarUrl": "string",
  "displayName": "string",
  "email": "string",
  "status": "active"
}
DELETE/organizations/{organizationId}/members/{memberId}

Path Parameters

organizationId*string
Length1 <= length
memberId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/organizations/string/members/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "memberId": "string",
  "organizationId": "string",
  "removedAt": "string"
}
POST/organizations/{organizationId}/owner-transfer

Path Parameters

organizationId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/organizations/string/owner-transfer" \  -H "Content-Type: application/json" \  -d '{    "fromMemberId": "string",    "toMemberId": "string"  }'
{
  "fromMember": {
    "memberId": "string",
    "userId": "string",
    "role": "admin",
    "joinedAt": "string",
    "avatarUrl": "string",
    "displayName": "string",
    "email": "string",
    "status": "active"
  },
  "toMember": {
    "memberId": "string",
    "userId": "string",
    "role": "admin",
    "joinedAt": "string",
    "avatarUrl": "string",
    "displayName": "string",
    "email": "string",
    "status": "active"
  },
  "transferredAt": "string"
}
GET/projects/count

Response Body

application/json

curl -X GET "https://example.com/projects/count"
{
  "count": 0
}
GET/projects

Query Parameters

limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/projects"
{
  "items": [
    {
      "id": "string",
      "organizationId": "string",
      "name": "string",
      "slug": "string",
      "description": "string",
      "lifecycleStatus": "active",
      "archivedAt": "string",
      "archiveReason": "string",
      "createdAt": "string"
    }
  ]
}
POST/projects

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
GET/projects/{projectId}

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/projects/string"
{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "slug": "string",
  "description": "string",
  "lifecycleStatus": "active",
  "archivedAt": "string",
  "archiveReason": "string",
  "createdAt": "string"
}
DELETE/projects/{projectId}

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/projects/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "projectId": "string"    }  }'
{
  "id": "string"
}
POST/projects/{projectId}/rename

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/projects/string/rename" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
POST/projects/{projectId}/description

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

description?string

Response Body

application/json

curl -X POST "https://example.com/projects/string/description" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/projects/{projectId}/archive

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/projects/string/archive" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/projects/{projectId}/restore

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/projects/string/restore"
{
  "id": "string"
}
GET/projects/{projectId}/delete-check

Read, rename, and archive projects. Public docs: /docs/resources/projects/#project-lifecycle

Path Parameters

projectId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/projects/string/delete-check"
{
  "schemaVersion": "projects.delete-check/v1",
  "projectId": "string",
  "lifecycleStatus": "active",
  "eligible": true,
  "blockers": [
    {
      "kind": "active-project",
      "relatedEntityId": "string",
      "relatedEntityType": "string",
      "count": 0
    }
  ],
  "checkedAt": "string"
}
GET/servers/count

Response Body

application/json

curl -X GET "https://example.com/servers/count"
{
  "count": 0
}
GET/servers

Query Parameters

limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/servers"
{
  "items": [
    {
      "id": "string",
      "name": "string",
      "host": "string",
      "port": 0,
      "providerKey": "string",
      "targetKind": "single-server",
      "lifecycleStatus": "active",
      "deactivatedAt": "string",
      "deactivationReason": "string",
      "edgeProxy": {
        "kind": "none",
        "status": "pending",
        "lastAttemptAt": "string",
        "lastSucceededAt": "string",
        "lastErrorCode": "string",
        "lastErrorMessage": "string"
      },
      "credential": {
        "kind": "local-ssh-agent",
        "credentialId": "string",
        "credentialName": "string",
        "username": "string",
        "publicKeyConfigured": true,
        "privateKeyConfigured": true
      },
      "createdAt": "string"
    }
  ]
}
POST/servers

Registers a deployment target. Docker Swarm targets are accepted when the runtime backend is available. Public docs: /docs/servers/register-connect/#docker-swarm-runtime-target

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "host": "string",    "providerKey": "string"  }'
{
  "id": "string"
}
GET/servers/{serverId}

Reads one deployment target with proxy status and usage rollups. Public docs: /docs/servers/register-connect/#server-deployment-target

Path Parameters

serverId*string
Length1 <= length

Query Parameters

includeRollups?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/servers/string"
{
  "schemaVersion": "servers.show/v1",
  "server": {
    "id": "string",
    "name": "string",
    "host": "string",
    "port": 0,
    "providerKey": "string",
    "targetKind": "single-server",
    "lifecycleStatus": "active",
    "deactivatedAt": "string",
    "deactivationReason": "string",
    "edgeProxy": {
      "kind": "none",
      "status": "pending",
      "lastAttemptAt": "string",
      "lastSucceededAt": "string",
      "lastErrorCode": "string",
      "lastErrorMessage": "string"
    },
    "credential": {
      "kind": "local-ssh-agent",
      "credentialId": "string",
      "credentialName": "string",
      "username": "string",
      "publicKeyConfigured": true,
      "privateKeyConfigured": true
    },
    "createdAt": "string"
  },
  "rollups": {
    "resources": {
      "total": 0,
      "deployedResourceIds": [
        "string"
      ]
    },
    "deployments": {
      "total": 0,
      "statusCounts": [
        {
          "status": "created",
          "count": 0
        }
      ],
      "latestDeploymentId": "string",
      "latestDeploymentStatus": "created"
    },
    "domains": {
      "total": 0,
      "statusCounts": [
        {
          "status": "requested",
          "count": 0
        }
      ],
      "latestDomainBindingId": "string",
      "latestDomainBindingStatus": "requested"
    }
  },
  "generatedAt": "string"
}
DELETE/servers/{serverId}

Deletes an inactive deployment target only after delete-safety blockers are clear. Public docs: /docs/servers/register-connect/#server-deployment-target

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/servers/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "serverId": "string"    }  }'
{
  "id": "string"
}
GET/servers/{serverId}/capacity

Inspects disk, inode, Docker, memory, CPU, and Appaloft runtime capacity without pruning or mutating server state. Public docs: /docs/observe/diagnostics/#runtime-target-capacity-inspect

Path Parameters

serverId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/servers/string/capacity"
{
  "schemaVersion": "servers.capacity.inspect/v1",
  "server": {
    "id": "string",
    "name": "string",
    "host": "string",
    "port": 0,
    "providerKey": "string",
    "targetKind": "string"
  },
  "inspectedAt": "string",
  "disk": [
    {
      "path": "string",
      "mount": "string",
      "size": 0,
      "used": 0,
      "available": 0,
      "usePercent": 0
    }
  ],
  "inodes": [
    {
      "path": "string",
      "mount": "string",
      "used": 0,
      "free": 0,
      "usePercent": 0
    }
  ],
  "docker": {
    "imagesSize": 0,
    "reclaimableImagesSize": 0,
    "buildCacheSize": 0,
    "reclaimableBuildCacheSize": 0,
    "containersSize": 0,
    "volumesSize": 0
  },
  "memory": {
    "total": 0,
    "available": 0,
    "used": 0,
    "usePercent": 0
  },
  "cpu": {
    "logicalCores": 0,
    "loadAverage1m": 0,
    "loadAverage5m": 0,
    "loadAverage15m": 0
  },
  "appaloftRuntime": {
    "runtimeRoot": {
      "path": "string",
      "size": 0,
      "detectable": true
    },
    "stateRoot": {
      "path": "string",
      "size": 0,
      "detectable": true
    },
    "sourceWorkspace": {
      "path": "string",
      "size": 0,
      "detectable": true
    }
  },
  "appaloftContainers": [
    {
      "id": "string",
      "name": "string",
      "running": true,
      "status": "string",
      "writableBytes": 0,
      "deploymentId": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "serverId": "string",
      "destinationId": "string",
      "artifactKind": "string"
    }
  ],
  "appaloftWorkspaces": [
    {
      "deploymentId": "string",
      "path": "string",
      "bytes": 0,
      "activeMarker": true,
      "rollbackCandidateMarker": true
    }
  ],
  "safeReclaimableEstimate": {
    "stoppedContainersSize": 0,
    "danglingImagesSize": 0,
    "oldBuildCacheSize": 0,
    "oldPreviewWorkspaceCandidatesSize": 0,
    "total": 0
  },
  "warnings": [
    {
      "code": "full-disk",
      "message": "string",
      "path": "string",
      "mount": "string",
      "resource": "disk"
    }
  ],
  "partial": true
}
POST/servers/{serverId}/capacity/prune

Dry-runs or prunes safe Appaloft-managed stopped containers and runtime workspaces without deleting volumes, state roots, or rollback candidates. Public docs: /docs/observe/diagnostics/#runtime-target-capacity-inspect

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/capacity/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "servers.capacity.prune/v1",
  "server": {
    "id": "string",
    "name": "string",
    "host": "string",
    "port": 0,
    "providerKey": "string",
    "targetKind": "string"
  },
  "before": "string",
  "categories": [
    "stopped-containers"
  ],
  "dryRun": true,
  "prunedAt": "string",
  "summary": {
    "inspectedCount": 0,
    "matchedCount": 0,
    "prunedCount": 0,
    "skippedCount": 0,
    "excludedCount": 0,
    "reclaimedBytes": 0,
    "reportedCandidateCount": 0,
    "omittedCandidateCount": 0,
    "outputLimit": 0
  },
  "candidates": [
    {
      "id": "string",
      "category": "stopped-containers",
      "target": "string",
      "updatedAt": "string",
      "size": 0,
      "action": "matched",
      "skippedReason": "active-runtime"
    }
  ],
  "warnings": [
    {
      "code": "full-disk",
      "message": "string",
      "path": "string",
      "mount": "string",
      "resource": "disk"
    }
  ]
}
GET/servers/capacity/policies

Lists safe scheduled runtime prune policy records with optional target and scope filters. Public docs: /docs/observe/diagnostics/#scheduled-runtime-prune-policy

Query Parameters

serverId?string
Length1 <= length
scope?string
Value in"defaults" | "system" | "organization" | "project" | "environment" | "deployment-snapshot"
enabledOnly?boolean|string

Response Body

application/json

curl -X GET "https://example.com/servers/capacity/policies"
{
  "schemaVersion": "scheduled-runtime-prune-policies.list/v1",
  "items": [
    {
      "schemaVersion": "scheduled-runtime-prune-policies.policy/v1",
      "id": "string",
      "version": "string",
      "scope": "defaults",
      "serverId": "string",
      "retentionDays": 0,
      "destructive": true,
      "categories": [
        "stopped-containers"
      ],
      "categoryCount": 0,
      "retryOnFailure": true,
      "enabled": true,
      "updatedAt": "string"
    }
  ]
}
POST/servers/capacity/policies

Configures a scheduled runtime prune policy used by scheduler readback and worker handoff. Public docs: /docs/observe/diagnostics/#scheduled-runtime-prune-policy

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/capacity/policies" \  -H "Content-Type: application/json" \  -d '{    "scope": "defaults",    "retentionDays": 1  }'
{
  "id": "string"
}
GET/servers/capacity/policies/{policyId}

Reads one safe scheduled runtime prune policy record by id. Public docs: /docs/observe/diagnostics/#scheduled-runtime-prune-policy

Path Parameters

policyId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/servers/capacity/policies/string"
{
  "schemaVersion": "scheduled-runtime-prune-policies.show/v1",
  "policy": {
    "schemaVersion": "scheduled-runtime-prune-policies.policy/v1",
    "id": "string",
    "version": "string",
    "scope": "defaults",
    "serverId": "string",
    "retentionDays": 0,
    "destructive": true,
    "categories": [
      "stopped-containers"
    ],
    "categoryCount": 0,
    "retryOnFailure": true,
    "enabled": true,
    "updatedAt": "string"
  }
}
POST/servers/{serverId}/rename

Renames the display label for one deployment target without changing its identity. Public docs: /docs/servers/register-connect/#server-deployment-target

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/rename" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
POST/servers/{serverId}/edge-proxy/configuration

Configures the desired edge proxy kind for future server access routing. Public docs: /docs/servers/operations/proxy-and-terminal/#server-proxy-readiness

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/edge-proxy/configuration" \  -H "Content-Type: application/json" \  -d '{    "proxyKind": "none"  }'
{
  "id": "string",
  "edgeProxy": {
    "kind": "none",
    "status": "pending"
  }
}
POST/servers/{serverId}/deactivate

Marks one deployment target inactive so it cannot receive new work. Public docs: /docs/servers/register-connect/#server-deployment-target

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/deactivate" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
GET/servers/{serverId}/delete-check

Previews whether a deployment target can be safely deleted. Public docs: /docs/servers/register-connect/#server-deployment-target

Path Parameters

serverId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/servers/string/delete-check"
{
  "schemaVersion": "servers.delete-check/v1",
  "serverId": "string",
  "lifecycleStatus": "active",
  "eligible": true,
  "blockers": [
    {
      "kind": "active-server",
      "relatedEntityId": "string",
      "relatedEntityType": "string",
      "count": 0
    }
  ],
  "checkedAt": "string"
}
POST/servers/{serverId}/credentials

Configures the SSH credential Appaloft uses for server connectivity and deployment. Public docs: /docs/servers/credentials/ssh-keys/#server-ssh-credential-path

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/credentials" \  -H "Content-Type: application/json" \  -d '{    "credential": {      "kind": "local-ssh-agent"    }  }'
null
POST/servers/{serverId}/connectivity-tests

Tests whether Appaloft can reach and inspect a server. Public docs: /docs/servers/register-connect/#server-connectivity-test

Path Parameters

serverId*string
Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/servers/string/connectivity-tests"
{
  "serverId": "string",
  "name": "string",
  "host": "string",
  "port": 0,
  "providerKey": "string",
  "checkedAt": "string",
  "status": "healthy",
  "checks": [
    {
      "name": "string",
      "status": "passed",
      "message": "string",
      "durationMs": 0,
      "metadata": {
        "property1": "string",
        "property2": "string"
      }
    }
  ]
}
POST/servers/connectivity-tests

Tests whether Appaloft can reach and inspect a server. Public docs: /docs/servers/register-connect/#server-connectivity-test

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/connectivity-tests" \  -H "Content-Type: application/json" \  -d '{    "server": {      "host": "string",      "providerKey": "string"    }  }'
{
  "serverId": "string",
  "name": "string",
  "host": "string",
  "port": 0,
  "providerKey": "string",
  "checkedAt": "string",
  "status": "healthy",
  "checks": [
    {
      "name": "string",
      "status": "passed",
      "message": "string",
      "durationMs": 0,
      "metadata": {
        "property1": "string",
        "property2": "string"
      }
    }
  ]
}
POST/servers/{serverId}/edge-proxy/bootstrap

Repairs or bootstraps provider-owned edge proxy infrastructure. Public docs: /docs/servers/operations/proxy-and-terminal/#server-proxy-readiness

Path Parameters

serverId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/servers/string/edge-proxy/bootstrap" \  -H "Content-Type: application/json" \  -d '{}'
{
  "serverId": "string",
  "attemptId": "string"
}
GET/runtime-usage/inspect

Inspects runtime usage attribution for one scope without pruning, quota enforcement, sample persistence, or state mutation. Public docs: /docs/observe/diagnostics/#runtime-usage-inspect

Query Parameters

scope?||||
mode?string
Default"current"
includeArtifacts?boolean
Defaulttrue
includeWarnings?boolean
Defaulttrue
scopeKind?string|string|string|string|string
serverId?string
Length1 <= length
projectId?string
Length1 <= length
environmentId?string
Length1 <= length
resourceId?string
Length1 <= length
deploymentId?string
Length1 <= length
scope.kind?string|string|string|string|string
scope.serverId?string
Length1 <= length
scope.projectId?string
Length1 <= length
scope.environmentId?string
Length1 <= length
scope.resourceId?string
Length1 <= length
scope.deploymentId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/runtime-usage/inspect"
{
  "schemaVersion": "runtime-usage.inspect/v1",
  "scope": {
    "kind": "server",
    "serverId": "string"
  },
  "generatedAt": "string",
  "observedAt": "string",
  "freshness": "live",
  "partial": true,
  "totals": {
    "cpu": {
      "logicalCores": 0,
      "loadAverage1m": 0,
      "loadAverage5m": 0,
      "loadAverage15m": 0,
      "containerCpuPercent": 0
    },
    "memory": {
      "totalBytes": 0,
      "usedBytes": 0,
      "availableBytes": 0,
      "containerUsedBytes": 0
    },
    "disk": {
      "totalBytes": 0,
      "usedBytes": 0,
      "availableBytes": 0,
      "attributedBytes": 0
    },
    "inode": {
      "total": 0,
      "used": 0,
      "available": 0
    },
    "docker": {
      "imageBytes": 0,
      "buildCacheBytes": 0,
      "containerWritableBytes": 0
    },
    "network": {
      "rxBytes": 0,
      "txBytes": 0
    }
  },
  "byProject": [
    {
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "ownership": "attributed",
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "currentDeploymentId": "string",
      "currentRuntimeId": "string",
      "artifactCount": 0,
      "warnings": [
        {
          "code": "partial-diagnostic",
          "message": "string",
          "scope": {
            "kind": "server",
            "serverId": "string"
          },
          "resource": "cpu"
        }
      ]
    }
  ],
  "byEnvironment": [
    {
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "ownership": "attributed",
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "currentDeploymentId": "string",
      "currentRuntimeId": "string",
      "artifactCount": 0,
      "warnings": [
        {
          "code": "partial-diagnostic",
          "message": "string",
          "scope": {
            "kind": "server",
            "serverId": "string"
          },
          "resource": "cpu"
        }
      ]
    }
  ],
  "byResource": [
    {
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "ownership": "attributed",
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "currentDeploymentId": "string",
      "currentRuntimeId": "string",
      "artifactCount": 0,
      "warnings": [
        {
          "code": "partial-diagnostic",
          "message": "string",
          "scope": {
            "kind": "server",
            "serverId": "string"
          },
          "resource": "cpu"
        }
      ]
    }
  ],
  "byDeployment": [
    {
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "ownership": "attributed",
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "currentDeploymentId": "string",
      "currentRuntimeId": "string",
      "artifactCount": 0,
      "warnings": [
        {
          "code": "partial-diagnostic",
          "message": "string",
          "scope": {
            "kind": "server",
            "serverId": "string"
          },
          "resource": "cpu"
        }
      ]
    }
  ],
  "artifacts": [
    {
      "kind": "active-runtime",
      "ownership": "attributed",
      "serverId": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "deploymentId": "string",
      "destinationId": "string",
      "runtimeId": "string",
      "bytes": 0,
      "inodeCount": 0,
      "observedAt": "string",
      "evidence": [
        {
          "source": "label",
          "key": "string"
        }
      ],
      "reclaimable": "yes",
      "reclaimBlockedReason": "string",
      "warnings": [
        {
          "code": "partial-diagnostic",
          "message": "string",
          "scope": {
            "kind": "server",
            "serverId": "string"
          },
          "resource": "cpu"
        }
      ]
    }
  ],
  "warnings": [
    {
      "code": "partial-diagnostic",
      "message": "string",
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "resource": "cpu"
    }
  ],
  "sourceErrors": [
    {
      "source": "runtime-target",
      "code": "string",
      "message": "string",
      "retriable": true
    }
  ]
}
GET/runtime-monitoring/samples

Lists retained runtime monitoring samples for one scope without collecting fresh data or mutating runtime targets. Public docs: /docs/observe/diagnostics/#runtime-monitoring-samples-and-rollups

Query Parameters

scope?||||
window?
signals?array<>
limit?integer
Default300
Range1 <= value <= 720
scope.kind?string|string|string|string|string
scope.serverId?string
Length1 <= length
window.from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
window.to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
scope.projectId?string
Length1 <= length
scope.environmentId?string
Length1 <= length
scope.resourceId?string
Length1 <= length
scope.deploymentId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/runtime-monitoring/samples"
{
  "schemaVersion": "runtime-monitoring.samples.list/v1",
  "scope": {
    "kind": "server",
    "serverId": "string"
  },
  "from": "string",
  "to": "string",
  "generatedAt": "string",
  "freshness": "live",
  "partial": true,
  "retention": {
    "rawRetentionHours": 0,
    "retainedFrom": "string",
    "retainedTo": "string"
  },
  "samples": [
    {
      "sampleId": "string",
      "observedAt": "string",
      "collectedAt": "string",
      "scopeEvidence": {
        "scope": {
          "kind": "server",
          "serverId": "string"
        },
        "serverId": "string",
        "projectId": "string",
        "environmentId": "string",
        "resourceId": "string",
        "deploymentId": "string"
      },
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "freshness": "live",
      "partial": true,
      "labels": {
        "providerKey": "string",
        "artifactKind": "active-runtime",
        "runtimeId": "string"
      },
      "warnings": [
        {
          "code": "missing-samples",
          "message": "string",
          "signal": "cpu",
          "scope": {
            "kind": "server",
            "serverId": "string"
          }
        }
      ],
      "sourceErrors": [
        {
          "source": "monitoring-store",
          "code": "string",
          "message": "string",
          "retriable": true
        }
      ]
    }
  ],
  "warnings": [
    {
      "code": "missing-samples",
      "message": "string",
      "signal": "cpu",
      "scope": {
        "kind": "server",
        "serverId": "string"
      }
    }
  ],
  "sourceErrors": [
    {
      "source": "monitoring-store",
      "code": "string",
      "message": "string",
      "retriable": true
    }
  ]
}
GET/runtime-monitoring/rollup

Reads retained runtime monitoring rollups and deployment markers for one scope without causal claims or runtime mutation. Public docs: /docs/observe/diagnostics/#runtime-monitoring-samples-and-rollups

Query Parameters

scope?||||
window?
bucket*string
Value in"minute" | "five-minute" | "hour"
signals?array<>
includeDeploymentMarkers?boolean
Defaulttrue
includeTopContributors?boolean
Defaulttrue
scope.kind?string|string|string|string|string
scope.serverId?string
Length1 <= length
window.from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
window.to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
scope.projectId?string
Length1 <= length
scope.environmentId?string
Length1 <= length
scope.resourceId?string
Length1 <= length
scope.deploymentId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/runtime-monitoring/rollup?bucket=minute"
{
  "schemaVersion": "runtime-monitoring.rollup/v1",
  "scope": {
    "kind": "server",
    "serverId": "string"
  },
  "from": "string",
  "to": "string",
  "bucket": "minute",
  "generatedAt": "string",
  "freshness": "live",
  "partial": true,
  "retention": {
    "rawRetentionHours": 0,
    "retainedFrom": "string",
    "retainedTo": "string"
  },
  "series": [
    {
      "signal": "cpu",
      "points": [
        {
          "from": "string",
          "to": "string",
          "sampleCount": 0,
          "totals": {
            "cpu": {
              "logicalCores": 0,
              "loadAverage1m": 0,
              "loadAverage5m": 0,
              "loadAverage15m": 0,
              "containerCpuPercent": 0
            },
            "memory": {
              "totalBytes": 0,
              "usedBytes": 0,
              "availableBytes": 0,
              "containerUsedBytes": 0
            },
            "disk": {
              "totalBytes": 0,
              "usedBytes": 0,
              "availableBytes": 0,
              "attributedBytes": 0
            },
            "inode": {
              "total": 0,
              "used": 0,
              "available": 0
            },
            "docker": {
              "imageBytes": 0,
              "buildCacheBytes": 0,
              "containerWritableBytes": 0
            },
            "network": {
              "rxBytes": 0,
              "txBytes": 0
            }
          }
        }
      ]
    }
  ],
  "totals": {
    "cpu": {
      "logicalCores": 0,
      "loadAverage1m": 0,
      "loadAverage5m": 0,
      "loadAverage15m": 0,
      "containerCpuPercent": 0
    },
    "memory": {
      "totalBytes": 0,
      "usedBytes": 0,
      "availableBytes": 0,
      "containerUsedBytes": 0
    },
    "disk": {
      "totalBytes": 0,
      "usedBytes": 0,
      "availableBytes": 0,
      "attributedBytes": 0
    },
    "inode": {
      "total": 0,
      "used": 0,
      "available": 0
    },
    "docker": {
      "imageBytes": 0,
      "buildCacheBytes": 0,
      "containerWritableBytes": 0
    },
    "network": {
      "rxBytes": 0,
      "txBytes": 0
    }
  },
  "topContributors": [
    {
      "scope": {
        "kind": "server",
        "serverId": "string"
      },
      "totals": {
        "cpu": {
          "logicalCores": 0,
          "loadAverage1m": 0,
          "loadAverage5m": 0,
          "loadAverage15m": 0,
          "containerCpuPercent": 0
        },
        "memory": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "containerUsedBytes": 0
        },
        "disk": {
          "totalBytes": 0,
          "usedBytes": 0,
          "availableBytes": 0,
          "attributedBytes": 0
        },
        "inode": {
          "total": 0,
          "used": 0,
          "available": 0
        },
        "docker": {
          "imageBytes": 0,
          "buildCacheBytes": 0,
          "containerWritableBytes": 0
        },
        "network": {
          "rxBytes": 0,
          "txBytes": 0
        }
      },
      "sampleCount": 0
    }
  ],
  "deploymentMarkers": [
    {
      "deploymentId": "string",
      "resourceId": "string",
      "environmentId": "string",
      "observedAt": "string",
      "status": "string",
      "label": "string",
      "correlation": "time"
    }
  ],
  "warnings": [
    {
      "code": "missing-samples",
      "message": "string",
      "signal": "cpu",
      "scope": {
        "kind": "server",
        "serverId": "string"
      }
    }
  ],
  "sourceErrors": [
    {
      "source": "monitoring-store",
      "code": "string",
      "message": "string",
      "retriable": true
    }
  ]
}
GET/runtime-monitoring/thresholds

Reads non-enforcing runtime monitoring threshold state from retained samples without runtime mutation. Public docs: /docs/observe/diagnostics/#runtime-monitoring-thresholds

Query Parameters

scope?||||
policyId?string
Length1 <= length
window?
scope.kind?string|string|string|string|string
scope.serverId?string
Length1 <= length
window.from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
window.to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
scope.projectId?string
Length1 <= length
scope.environmentId?string
Length1 <= length
scope.resourceId?string
Length1 <= length
scope.deploymentId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/runtime-monitoring/thresholds"
{
  "schemaVersion": "runtime-monitoring-thresholds.show/v1",
  "scope": {
    "kind": "server",
    "serverId": "string"
  },
  "generatedAt": "string",
  "policy": {
    "schemaVersion": "runtime-monitoring-thresholds.policy/v1",
    "policyId": "string",
    "scope": {
      "kind": "server",
      "serverId": "string"
    },
    "rules": [
      {
        "ruleId": "string",
        "signal": "cpu",
        "metric": "containerCpuPercent",
        "warning": 0,
        "critical": 0,
        "comparator": "greater-than-or-equal"
      }
    ],
    "enabled": true,
    "updatedAt": "string",
    "updatedByActorId": "string",
    "updatedByActorKind": "deploy-token"
  },
  "evaluation": {
    "state": "ok",
    "evaluatedAt": "string",
    "sourceSampleId": "string",
    "crossed": [
      {
        "ruleId": "string",
        "signal": "cpu",
        "metric": "containerCpuPercent",
        "severity": "warning",
        "observedValue": 0,
        "boundary": 0
      }
    ],
    "nextActions": [
      "inspect-runtime-usage"
    ],
    "sourceErrors": [
      {
        "source": "monitoring-store",
        "code": "string",
        "message": "string",
        "retriable": true
      }
    ]
  }
}
POST/runtime-monitoring/thresholds

Configures non-enforcing runtime monitoring threshold policy without runtime mutation. Public docs: /docs/observe/diagnostics/#runtime-monitoring-thresholds

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/runtime-monitoring/thresholds" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "server",      "serverId": "string"    },    "rules": [      {        "signal": "cpu",        "metric": "containerCpuPercent"      }    ]  }'
{
  "policy": {
    "schemaVersion": "runtime-monitoring-thresholds.policy/v1",
    "policyId": "string",
    "scope": {
      "kind": "server",
      "serverId": "string"
    },
    "rules": [
      {
        "ruleId": "string",
        "signal": "cpu",
        "metric": "containerCpuPercent",
        "warning": 0,
        "critical": 0,
        "comparator": "greater-than-or-equal"
      }
    ],
    "enabled": true,
    "updatedAt": "string",
    "updatedByActorId": "string",
    "updatedByActorKind": "deploy-token"
  }
}
GET/retention-defaults

Lists safe retention default policy records without retained history payloads. Public docs: /docs/reference/errors-statuses/#operator-retention-defaults

Query Parameters

scope?string
Value in"organization" | "system"
organizationId?string
Length1 <= length
category?string
Value in"audit-rows" | "deployment-logs" | "domain-event-streams" | "process-attempts" | "provider-job-logs" | "resource-runtime-log-archives" | "runtime-monitoring-samples"
enabledOnly?boolean|string

Response Body

application/json

curl -X GET "https://example.com/retention-defaults"
{
  "schemaVersion": "retention-defaults.list/v1",
  "items": [
    {
      "schemaVersion": "retention-defaults.policy/v1",
      "id": "string",
      "scope": "organization",
      "organizationId": "string",
      "category": "audit-rows",
      "retentionDays": 0,
      "dryRunSchedulingEnabled": true,
      "destructiveSchedulingEnabled": true,
      "enabled": true,
      "updatedAt": "string",
      "updatedByActorId": "string",
      "updatedByActorKind": "deploy-token"
    }
  ]
}
POST/retention-defaults

Configures non-executing retention defaults for governed history categories. Public docs: /docs/reference/errors-statuses/#operator-retention-defaults

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/retention-defaults" \  -H "Content-Type: application/json" \  -d '{    "category": "audit-rows",    "retentionDays": 1  }'
{
  "id": "string"
}
GET/retention-defaults/{category}

Reads one safe retention default policy record by category. Public docs: /docs/reference/errors-statuses/#operator-retention-defaults

Path Parameters

category*string
Value in"audit-rows" | "deployment-logs" | "domain-event-streams" | "process-attempts" | "provider-job-logs" | "resource-runtime-log-archives" | "runtime-monitoring-samples"

Query Parameters

scope?string
Default"system"
Value in"organization" | "system"
organizationId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/retention-defaults/audit-rows"
{
  "schemaVersion": "retention-defaults.show/v1",
  "policy": {
    "schemaVersion": "retention-defaults.policy/v1",
    "id": "string",
    "scope": "organization",
    "organizationId": "string",
    "category": "audit-rows",
    "retentionDays": 0,
    "dryRunSchedulingEnabled": true,
    "destructiveSchedulingEnabled": true,
    "enabled": true,
    "updatedAt": "string",
    "updatedByActorId": "string",
    "updatedByActorKind": "deploy-token"
  }
}
GET/credentials/ssh

Query Parameters

limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/credentials/ssh"
{
  "items": [
    {
      "id": "string",
      "name": "string",
      "kind": "ssh-private-key",
      "username": "string",
      "publicKeyConfigured": true,
      "privateKeyConfigured": true,
      "createdAt": "string",
      "rotatedAt": "string"
    }
  ]
}
POST/credentials/ssh

Creates a reusable SSH credential from a private key input. Public docs: /docs/servers/credentials/ssh-keys/#server-ssh-credential-path

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/credentials/ssh" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "kind": "ssh-private-key",    "privateKey": "string"  }'
{
  "id": "string"
}
GET/credentials/ssh/{credentialId}

Reads one reusable SSH credential with masked detail and server usage visibility. Public docs: /docs/servers/credentials/ssh-keys/#server-ssh-credential-path

Path Parameters

credentialId*string
Length1 <= length

Query Parameters

includeUsage?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/credentials/ssh/string"
{
  "schemaVersion": "credentials.show/v1",
  "credential": {
    "id": "string",
    "name": "string",
    "kind": "ssh-private-key",
    "username": "string",
    "publicKeyConfigured": true,
    "privateKeyConfigured": true,
    "createdAt": "string",
    "rotatedAt": "string"
  },
  "usage": {
    "totalServers": 0,
    "activeServers": 0,
    "inactiveServers": 0,
    "servers": [
      {
        "serverId": "string",
        "serverName": "string",
        "lifecycleStatus": "active",
        "providerKey": "string",
        "host": "string",
        "username": "string"
      }
    ]
  },
  "generatedAt": "string"
}
DELETE/credentials/ssh/{credentialId}

Deletes one reusable SSH credential only when no visible active or inactive server uses it. Public docs: /docs/servers/credentials/ssh-keys/#server-ssh-credential-path

Path Parameters

credentialId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/credentials/ssh/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "credentialId": "string"    }  }'
{
  "id": "string"
}
POST/credentials/ssh/{credentialId}/rotate

Rotates one reusable SSH credential in place after usage visibility and acknowledgement checks. Public docs: /docs/servers/credentials/ssh-keys/#server-ssh-credential-path

Path Parameters

credentialId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/credentials/ssh/string/rotate" \  -H "Content-Type: application/json" \  -d '{    "privateKey": "string",    "confirmation": {      "credentialId": "string"    }  }'
{
  "schemaVersion": "credentials.rotate-ssh/v1",
  "credential": {
    "id": "string",
    "kind": "ssh-private-key",
    "usernameConfigured": true,
    "publicKeyConfigured": true,
    "privateKeyConfigured": true,
    "rotatedAt": "string"
  },
  "affectedUsage": {
    "totalServers": 0,
    "activeServers": 0,
    "inactiveServers": 0,
    "servers": [
      {
        "serverId": "string",
        "serverName": "string",
        "lifecycleStatus": "active",
        "providerKey": "string",
        "host": "string",
        "username": "string"
      }
    ]
  }
}
GET/environments/count

Query Parameters

projectId?string

Response Body

application/json

curl -X GET "https://example.com/environments/count"
{
  "count": 0
}
GET/environments

Query Parameters

projectId?string
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/environments"
{
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "name": "string",
      "kind": "local",
      "parentEnvironmentId": "string",
      "lifecycleStatus": "active",
      "lockedAt": "string",
      "lockReason": "string",
      "archivedAt": "string",
      "archiveReason": "string",
      "createdAt": "string",
      "maskedVariables": [
        {
          "key": "string",
          "value": "string",
          "scope": "string",
          "exposure": "build-time",
          "isSecret": true,
          "kind": "string"
        }
      ]
    }
  ]
}
POST/environments

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "name": "string",    "kind": "local"  }'
{
  "id": "string"
}
GET/environments/{environmentId}

Path Parameters

environmentId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/environments/string"
{
  "id": "string",
  "projectId": "string",
  "name": "string",
  "kind": "local",
  "parentEnvironmentId": "string",
  "lifecycleStatus": "active",
  "lockedAt": "string",
  "lockReason": "string",
  "archivedAt": "string",
  "archiveReason": "string",
  "createdAt": "string",
  "maskedVariables": [
    {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string"
    }
  ]
}
POST/environments/{environmentId}/lock

Locks one environment to block mutable work while keeping it readable. Public docs: /docs/environments/model/#environment-lifecycle

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/lock" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/environments/{environmentId}/unlock

Unlocks one environment so mutable work can resume. Public docs: /docs/environments/model/#environment-lifecycle

Path Parameters

environmentId*string
Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/environments/string/unlock"
{
  "id": "string"
}
POST/environments/{environmentId}/archive

Archives one environment while keeping deployment history readable. Public docs: /docs/environments/model/#environment-lifecycle

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/archive" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/environments/{environmentId}/clone

Clones one active environment into a new environment in the same project. Public docs: /docs/environments/model/#environment-lifecycle

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/clone" \  -H "Content-Type: application/json" \  -d '{    "targetName": "string"  }'
{
  "id": "string"
}
POST/environments/{environmentId}/rename

Renames one active environment without changing configuration or deployments. Public docs: /docs/environments/model/#environment-lifecycle

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/rename" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
POST/environments/{environmentId}/variables

Sets an environment variable with explicit kind, exposure, scope, and secret handling. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/variables" \  -H "Content-Type: application/json" \  -d '{    "key": "string",    "value": "string",    "kind": "plain-config",    "exposure": "build-time"  }'
null
DELETE/environments/{environmentId}/variables/{key}

Removes an environment variable in a specific exposure and optional scope. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

environmentId*string
Length1 <= length
key*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/environments/string/variables/string" \  -H "Content-Type: application/json" \  -d '{    "exposure": "build-time"  }'
null
GET/environments/{environmentId}/effective-precedence

Reads masked environment variables after environment precedence resolution. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

environmentId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/environments/string/effective-precedence"
{
  "schemaVersion": "environments.effective-precedence/v1",
  "environmentId": "string",
  "projectId": "string",
  "ownedEntries": [
    {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string",
      "updatedAt": "string"
    }
  ],
  "effectiveEntries": [
    {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string",
      "updatedAt": "string"
    }
  ],
  "precedence": [
    "string"
  ],
  "generatedAt": "string"
}
POST/environments/{environmentId}/promote

Promotes one environment configuration set into another. Public docs: /docs/environments/changes/diff-promote/#environment-diff

Path Parameters

environmentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/environments/string/promote" \  -H "Content-Type: application/json" \  -d '{    "targetName": "string",    "targetKind": "local"  }'
{
  "id": "string"
}
GET/environments/{environmentId}/diff/{otherEnvironmentId}

Compares two environment configuration sets. Public docs: /docs/environments/changes/diff-promote/#environment-diff

Path Parameters

environmentId*string
Length1 <= length
otherEnvironmentId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/environments/string/diff/string"
[
  {
    "key": "string",
    "exposure": "build-time",
    "left": {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string"
    },
    "right": {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string"
    },
    "change": "added"
  }
]
GET/default-access-domain-policies

Lists persisted default access policy records. Public docs: /docs/access/generated-routes/#default-access-policy

Response Body

application/json

curl -X GET "https://example.com/default-access-domain-policies"
{
  "schemaVersion": "default-access-domain-policies.list/v1",
  "items": [
    {
      "schemaVersion": "default-access-domain-policies.policy/v1",
      "id": "string",
      "scope": {
        "kind": "system"
      },
      "mode": "disabled",
      "providerKey": "string",
      "templateRef": "string",
      "updatedAt": "string"
    }
  ]
}
POST/default-access-domain-policies

Configures generated access routes for deployed resources. Public docs: /docs/access/generated-routes/#default-access-policy

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/default-access-domain-policies" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "system"    },    "mode": "disabled"  }'
{
  "id": "string"
}
GET/default-access-domain-policies/show

Reads one persisted default access policy scope. Public docs: /docs/access/generated-routes/#default-access-policy

Query Parameters

scopeKind?string
Default"system"
Value in"system" | "deployment-target"
serverId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/default-access-domain-policies/show"
{
  "schemaVersion": "default-access-domain-policies.show/v1",
  "scope": {
    "kind": "system"
  },
  "policy": {
    "schemaVersion": "default-access-domain-policies.policy/v1",
    "id": "string",
    "scope": {
      "kind": "system"
    },
    "mode": "disabled",
    "providerKey": "string",
    "templateRef": "string",
    "updatedAt": "string"
  }
}
GET/resources/count

Query Parameters

projectId?string
environmentId?string
includePreviewResources?boolean

Response Body

application/json

curl -X GET "https://example.com/resources/count"
{
  "count": 0
}
GET/resources

Query Parameters

projectId?string
environmentId?string
includePreviewResources?boolean
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/resources"
{
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "destinationId": "string",
      "name": "string",
      "slug": "string",
      "kind": "application",
      "description": "string",
      "createdAt": "string",
      "services": [
        {
          "name": "string",
          "kind": "web"
        }
      ],
      "networkProfile": {
        "internalPort": 1,
        "upstreamProtocol": "http",
        "exposureMode": "none",
        "targetServiceName": "string",
        "hostPort": 1
      },
      "accessProfile": {
        "generatedAccessMode": "inherit",
        "pathPrefix": "/"
      },
      "deploymentCount": 0,
      "lastDeploymentId": "string",
      "lastDeploymentStatus": "created",
      "latestRuntimeControl": {
        "runtimeControlAttemptId": "string",
        "operation": "stop",
        "status": "accepted",
        "startedAt": "string",
        "completedAt": "string",
        "runtimeState": "starting",
        "blockedReason": "resource-archived",
        "errorCode": "string",
        "phases": [
          {
            "phase": "stop",
            "status": "pending",
            "errorCode": "string"
          }
        ]
      },
      "accessSummary": {
        "plannedGeneratedAccessRoute": {
          "url": "string",
          "hostname": "string",
          "scheme": "http",
          "providerKey": "string",
          "pathPrefix": "string",
          "proxyKind": "none",
          "targetPort": 1
        },
        "latestGeneratedAccessRoute": {
          "url": "string",
          "hostname": "string",
          "scheme": "http",
          "providerKey": "string",
          "deploymentId": "string",
          "deploymentStatus": "created",
          "pathPrefix": "string",
          "proxyKind": "none",
          "targetPort": 1,
          "updatedAt": "string"
        },
        "latestDurableDomainRoute": {
          "url": "string",
          "hostname": "string",
          "scheme": "http",
          "providerKey": "string",
          "deploymentId": "string",
          "deploymentStatus": "created",
          "pathPrefix": "string",
          "proxyKind": "none",
          "targetPort": 1,
          "updatedAt": "string"
        },
        "latestServerAppliedDomainRoute": {
          "url": "string",
          "hostname": "string",
          "scheme": "http",
          "providerKey": "string",
          "deploymentId": "string",
          "deploymentStatus": "created",
          "pathPrefix": "string",
          "proxyKind": "none",
          "targetPort": 1,
          "updatedAt": "string"
        },
        "proxyRouteStatus": "unknown",
        "lastRouteRealizationDeploymentId": "string",
        "latestAccessFailureDiagnostic": {
          "schemaVersion": "resource-access-failure/v1",
          "requestId": "string",
          "generatedAt": "string",
          "code": "resource_access_route_not_found",
          "category": "infra",
          "phase": "edge-request-routing",
          "httpStatus": 404,
          "retriable": true,
          "ownerHint": "platform",
          "nextAction": "check-health",
          "affected": {
            "url": "string",
            "hostname": "string",
            "path": "string",
            "method": "string"
          },
          "route": {
            "host": "string",
            "pathPrefix": "string",
            "resourceId": "string",
            "deploymentId": "string",
            "domainBindingId": "string",
            "serverId": "string",
            "destinationId": "string",
            "providerKey": "string",
            "routeId": "string",
            "diagnosticId": "string",
            "routeSource": "generated-default",
            "routeStatus": "string"
          },
          "causeCode": "string",
          "correlationId": "string",
          "causationId": "string"
        }
      }
    }
  ]
}
POST/resources

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "environmentId": "string",    "name": "string"  }'
{
  "id": "string"
}
GET/resources/{resourceId}

Reads one resource profile with optional diagnostics for profile drift. Public docs: /docs/resources/profiles/source-runtime/#resource-profile-drift

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

includeLatestDeployment?boolean|string|string
includeAccessSummary?boolean|string|string
includeProfileDiagnostics?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/resources/string"
{
  "schemaVersion": "resources.show/v1",
  "resource": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "destinationId": "string",
    "name": "string",
    "slug": "string",
    "kind": "application",
    "description": "string",
    "createdAt": "string",
    "services": [
      {
        "name": "string",
        "kind": "web"
      }
    ],
    "deploymentCount": 0,
    "lastDeploymentId": "string",
    "lastDeploymentStatus": "created"
  },
  "source": {
    "kind": "local-folder",
    "locator": "string",
    "displayName": "string",
    "sourceBindingFingerprint": "string",
    "gitRef": "string",
    "commitSha": "string",
    "baseDirectory": "string",
    "originalLocator": "string",
    "repositoryId": "string",
    "repositoryFullName": "string",
    "defaultBranch": "string",
    "imageName": "string",
    "imageTag": "string",
    "imageDigest": "string",
    "metadata": {
      "property1": "string",
      "property2": "string"
    }
  },
  "autoDeployPolicy": {
    "status": "enabled",
    "triggerKind": "git-push",
    "refs": [
      "string"
    ],
    "eventKinds": [
      "push"
    ],
    "sourceBindingFingerprint": "string",
    "blockedReason": "source-binding-changed",
    "genericWebhookSecretRef": "string",
    "dedupeWindowSeconds": 1,
    "updatedAt": "string"
  },
  "runtimeProfile": {
    "strategy": "auto",
    "installCommand": "string",
    "buildCommand": "string",
    "startCommand": "string",
    "runtimeName": "string",
    "publishDirectory": "string",
    "dockerfilePath": "string",
    "dockerComposeFilePath": "string",
    "buildTarget": "string",
    "healthCheckPath": "string",
    "healthCheck": {
      "enabled": true,
      "type": "http",
      "intervalSeconds": 1,
      "timeoutSeconds": 1,
      "retries": 1,
      "startPeriodSeconds": 0,
      "http": {
        "method": "GET",
        "scheme": "http",
        "host": "string",
        "port": 1,
        "path": "string",
        "expectedStatusCode": 100,
        "expectedResponseText": "string"
      }
    }
  },
  "networkProfile": {
    "internalPort": 1,
    "upstreamProtocol": "http",
    "exposureMode": "none",
    "targetServiceName": "string",
    "hostPort": 1
  },
  "accessProfile": {
    "generatedAccessMode": "inherit",
    "pathPrefix": "/"
  },
  "healthPolicy": {
    "enabled": true,
    "type": "http",
    "intervalSeconds": 1,
    "timeoutSeconds": 1,
    "retries": 1,
    "startPeriodSeconds": 0,
    "http": {
      "method": "GET",
      "scheme": "http",
      "host": "string",
      "port": 1,
      "path": "string",
      "expectedStatusCode": 100,
      "expectedResponseText": "string"
    }
  },
  "storageAttachments": [
    {
      "id": "string",
      "storageVolumeId": "string",
      "storageVolumeName": "string",
      "storageVolumeKind": "named-volume",
      "destinationPath": "string",
      "mountMode": "read-write",
      "attachedAt": "string"
    }
  ],
  "accessSummary": {
    "plannedGeneratedAccessRoute": {
      "url": "string",
      "hostname": "string",
      "scheme": "http",
      "providerKey": "string",
      "pathPrefix": "string",
      "proxyKind": "none",
      "targetPort": 1
    },
    "latestGeneratedAccessRoute": {
      "url": "string",
      "hostname": "string",
      "scheme": "http",
      "providerKey": "string",
      "deploymentId": "string",
      "deploymentStatus": "created",
      "pathPrefix": "string",
      "proxyKind": "none",
      "targetPort": 1,
      "updatedAt": "string"
    },
    "latestDurableDomainRoute": {
      "url": "string",
      "hostname": "string",
      "scheme": "http",
      "providerKey": "string",
      "deploymentId": "string",
      "deploymentStatus": "created",
      "pathPrefix": "string",
      "proxyKind": "none",
      "targetPort": 1,
      "updatedAt": "string"
    },
    "latestServerAppliedDomainRoute": {
      "url": "string",
      "hostname": "string",
      "scheme": "http",
      "providerKey": "string",
      "deploymentId": "string",
      "deploymentStatus": "created",
      "pathPrefix": "string",
      "proxyKind": "none",
      "targetPort": 1,
      "updatedAt": "string"
    },
    "proxyRouteStatus": "unknown",
    "lastRouteRealizationDeploymentId": "string",
    "latestAccessFailureDiagnostic": {
      "schemaVersion": "resource-access-failure/v1",
      "requestId": "string",
      "generatedAt": "string",
      "code": "resource_access_route_not_found",
      "category": "infra",
      "phase": "edge-request-routing",
      "httpStatus": 404,
      "retriable": true,
      "ownerHint": "platform",
      "nextAction": "check-health",
      "affected": {
        "url": "string",
        "hostname": "string",
        "path": "string",
        "method": "string"
      },
      "route": {
        "host": "string",
        "pathPrefix": "string",
        "resourceId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "serverId": "string",
        "destinationId": "string",
        "providerKey": "string",
        "routeId": "string",
        "diagnosticId": "string",
        "routeSource": "generated-default",
        "routeStatus": "string"
      },
      "causeCode": "string",
      "correlationId": "string",
      "causationId": "string"
    }
  },
  "latestDeployment": {
    "id": "string",
    "status": "created",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "serverId": "string",
    "destinationId": "string"
  },
  "lifecycle": {
    "status": "active",
    "archivedAt": "string",
    "deletedAt": "string"
  },
  "diagnostics": [
    {
      "code": "string",
      "severity": "info",
      "message": "string",
      "path": "string",
      "section": "source",
      "fieldPath": "string",
      "configKey": "string",
      "configExposure": "build-time",
      "configKind": "deployment-strategy",
      "configScope": "defaults",
      "configSource": "resource",
      "comparison": "resource-vs-entry-profile",
      "resourceValue": {
        "state": "present",
        "displayValue": "string",
        "valueHash": "string"
      },
      "entryProfileValue": {
        "state": "present",
        "displayValue": "string",
        "valueHash": "string"
      },
      "deploymentSnapshotValue": {
        "state": "present",
        "displayValue": "string",
        "valueHash": "string"
      },
      "latestDeploymentId": "string",
      "configPointer": "string",
      "blocksDeploymentAdmission": true,
      "suggestedCommand": "resources.configure-source"
    }
  ],
  "generatedAt": "string"
}
DELETE/resources/{resourceId}

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/resources/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "resourceSlug": "string"    }  }'
{
  "id": "string"
}
POST/resources/{resourceId}/archive

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/archive" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/resources/{resourceId}/health-policy

Configures readiness and health checks used during verification. Public docs: /docs/resources/profiles/health-network/#resource-health-profile

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/health-policy" \  -H "Content-Type: application/json" \  -d '{    "healthCheck": {}  }'
{
  "id": "string"
}
POST/resources/{resourceId}/health-policy/reset

Resets the reusable resource health policy without deploying or restarting runtime. Public docs: /docs/resources/profiles/health-network/#resource-health-profile

Path Parameters

resourceId*string
Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/resources/string/health-policy/reset"
{
  "id": "string"
}
POST/resources/{resourceId}/network-profile

Configures ports, protocols, and exposure behavior for resource access. Public docs: /docs/resources/profiles/health-network/#resource-network-profile

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/network-profile" \  -H "Content-Type: application/json" \  -d '{    "networkProfile": {      "internalPort": 1    }  }'
{
  "id": "string"
}
POST/resources/{resourceId}/access-profile

Configures resource participation in generated default access route planning. Public docs: /docs/access/generated-routes/#resource-access-profile

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/access-profile" \  -H "Content-Type: application/json" \  -d '{    "accessProfile": {}  }'
{
  "id": "string"
}
POST/resources/{resourceId}/auto-deploy

Configures a Resource-owned auto-deploy policy for trusted source events. Public docs: /docs/deploy/sources/#source-auto-deploy-setup

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/auto-deploy" \  -H "Content-Type: application/json" \  -d '{    "mode": "enable"  }'
{
  "resourceId": "string",
  "status": "enabled",
  "triggerKind": "git-push",
  "refs": [
    "string"
  ],
  "eventKinds": [
    "push"
  ],
  "sourceBindingFingerprint": "string",
  "blockedReason": "source-binding-changed"
}
POST/resources/{resourceId}/storage-attachments

Attaches an existing storage volume to a resource at a validated destination path. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/storage-attachments" \  -H "Content-Type: application/json" \  -d '{    "storageVolumeId": "string",    "destinationPath": "string"  }'
{
  "id": "string"
}
DELETE/resources/{resourceId}/storage-attachments/{attachmentId}

Detaches storage from a resource without deleting the underlying volume. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

resourceId*string
Length1 <= length
attachmentId*string
Length1 <= length

Response Body

application/json

curl -X DELETE "https://example.com/resources/string/storage-attachments/string"
{
  "id": "string"
}
POST/resources/{resourceId}/runtime-profile

Configures runtime settings such as strategy, commands, and publish directory. Public docs: /docs/resources/profiles/source-runtime/#resource-runtime-profile

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/runtime-profile" \  -H "Content-Type: application/json" \  -d '{    "runtimeProfile": {}  }'
{
  "id": "string"
}
POST/resources/{resourceId}/source

Configures the source profile used by later deployment detect and plan stages. Public docs: /docs/resources/profiles/source-runtime/#resource-source-profile

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/source" \  -H "Content-Type: application/json" \  -d '{    "source": {      "kind": "local-folder",      "locator": "./apps/web",      "displayName": "Web console",      "baseDirectory": ".",      "metadata": {        "framework": "sveltekit"      }    },    "idempotencyKey": "configure-source-res-web-console"  }'
{
  "id": "string"
}
POST/resources/{resourceId}/variables

Sets one resource-scoped variable or secret override. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/variables" \  -H "Content-Type: application/json" \  -d '{    "key": "string",    "value": "string",    "exposure": "build-time"  }'
null
GET/resources/{resourceId}/secrets

Lists masked resource-owned secret references for one resource. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

exposure?string
Default"runtime"
Value in"build-time" | "runtime"

Response Body

application/json

curl -X GET "https://example.com/resources/string/secrets"
{
  "schemaVersion": "resources.secrets.list/v1",
  "resourceId": "string",
  "items": [
    {
      "resourceId": "string",
      "key": "string",
      "value": "****",
      "scope": "resource",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "secret",
      "updatedAt": "string"
    }
  ],
  "generatedAt": "string"
}
POST/resources/{resourceId}/secrets

Creates one resource-owned runtime secret reference without exposing its value on reads. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/secrets" \  -H "Content-Type: application/json" \  -d '{    "key": "string",    "value": "string"  }'
{
  "resourceId": "string",
  "key": "string",
  "exposure": "build-time"
}
GET/resources/{resourceId}/secrets/{key}

Reads one masked resource-owned secret reference. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length
key*string
Length1 <= length

Query Parameters

exposure?string
Default"runtime"
Value in"build-time" | "runtime"

Response Body

application/json

curl -X GET "https://example.com/resources/string/secrets/string"
{
  "schemaVersion": "resources.secrets.show/v1",
  "secret": {
    "resourceId": "string",
    "key": "string",
    "value": "****",
    "scope": "resource",
    "exposure": "build-time",
    "isSecret": true,
    "kind": "secret",
    "updatedAt": "string"
  },
  "generatedAt": "string"
}
POST/resources/{resourceId}/secrets/{key}

Rotates the value of one existing resource-owned secret reference. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length
key*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/secrets/string" \  -H "Content-Type: application/json" \  -d '{    "value": "string"  }'
{
  "resourceId": "string",
  "key": "string",
  "exposure": "build-time"
}
DELETE/resources/{resourceId}/secrets/{key}

Deletes one existing resource-owned secret reference. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length
key*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/resources/string/secrets/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "resourceId": "string",
  "key": "string",
  "exposure": "build-time"
}
POST/resources/{resourceId}/variables/import

Imports pasted .env content into resource-scoped variables and secrets. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/variables/import" \  -H "Content-Type: application/json" \  -d '{    "content": "string",    "exposure": "build-time"  }'
{
  "resourceId": "string",
  "importedEntries": [
    {
      "key": "string",
      "value": "string",
      "exposure": "build-time",
      "kind": "plain-config",
      "isSecret": true,
      "action": "created",
      "sourceLine": 1
    }
  ],
  "duplicateOverrides": [
    {
      "key": "string",
      "exposure": "build-time",
      "firstLine": 1,
      "lastLine": 1,
      "rule": "last-wins"
    }
  ],
  "existingOverrides": [
    {
      "key": "string",
      "exposure": "build-time",
      "previousScope": "resource",
      "rule": "resource-entry-replaced"
    }
  ]
}
DELETE/resources/{resourceId}/variables/{key}

Removes one resource-scoped variable override. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length
key*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/resources/string/variables/string" \  -H "Content-Type: application/json" \  -d '{    "exposure": "build-time"  }'
null
GET/resources/{resourceId}/effective-config

Reads the masked effective configuration for one resource. Public docs: /docs/environments/variables/precedence/#environment-variable-precedence

Path Parameters

resourceId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/string/effective-config"
{
  "schemaVersion": "resources.effective-config/v1",
  "resourceId": "string",
  "environmentId": "string",
  "ownedEntries": [
    {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string",
      "updatedAt": "string"
    }
  ],
  "effectiveEntries": [
    {
      "key": "string",
      "value": "string",
      "scope": "string",
      "exposure": "build-time",
      "isSecret": true,
      "kind": "string",
      "updatedAt": "string"
    }
  ],
  "overrides": [],
  "precedence": [
    "string"
  ],
  "generatedAt": "string"
}
GET/resources/{resourceId}/diagnostic-summary

Returns a support-safe diagnostic summary. Public docs: /docs/observe/diagnostics/#diagnostic-summary-copy-support-payload

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

deploymentId?string
Length1 <= length
observationFrom?string
Length1 <= length
observationTo?string
Length1 <= length
includeDeploymentLogTail?boolean|string|string
includeRuntimeLogTail?boolean|string|string
includeProxyConfiguration?boolean|string|string
tailLines?integer
Default20
Range0 <= value <= 50
locale?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/string/diagnostic-summary"
{
  "schemaVersion": "resources.diagnostic-summary/v1",
  "generatedAt": "string",
  "focus": {
    "resourceId": "string",
    "requestedDeploymentId": "string",
    "deploymentId": "string"
  },
  "context": {
    "projectId": "string",
    "environmentId": "string",
    "resourceName": "string",
    "resourceSlug": "string",
    "resourceKind": "application",
    "destinationId": "string",
    "serverId": "string",
    "runtimeStrategy": "docker-container",
    "buildStrategy": "dockerfile",
    "packagingMode": "split-deploy",
    "targetKind": "single-server",
    "targetProviderKey": "string",
    "services": [
      {
        "name": "string",
        "kind": "web"
      }
    ],
    "networkProfile": {
      "internalPort": 1,
      "upstreamProtocol": "http",
      "exposureMode": "none",
      "targetServiceName": "string",
      "hostPort": 1
    },
    "observationWindow": {
      "from": "string",
      "to": "string"
    }
  },
  "deployment": {
    "id": "string",
    "status": "created",
    "lifecyclePhase": "created",
    "runtimePlanId": "string",
    "sourceKind": "local-folder",
    "sourceDisplayName": "string",
    "serverId": "string",
    "destinationId": "string",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "logCount": 0,
    "lastError": {
      "timestamp": "string",
      "phase": "detect",
      "message": "string"
    }
  },
  "access": {
    "status": "available",
    "generatedUrl": "string",
    "durableUrl": "string",
    "serverAppliedUrl": "string",
    "plannedUrl": "string",
    "latestAccessFailure": {
      "schemaVersion": "resource-access-failure/v1",
      "requestId": "string",
      "generatedAt": "string",
      "code": "resource_access_route_not_found",
      "category": "infra",
      "phase": "edge-request-routing",
      "httpStatus": 404,
      "retriable": true,
      "ownerHint": "platform",
      "nextAction": "check-health",
      "affected": {
        "url": "string",
        "hostname": "string",
        "path": "string",
        "method": "string"
      },
      "route": {
        "host": "string",
        "pathPrefix": "string",
        "resourceId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "serverId": "string",
        "destinationId": "string",
        "providerKey": "string",
        "routeId": "string",
        "diagnosticId": "string",
        "routeSource": "generated-default",
        "routeStatus": "string"
      },
      "causeCode": "string",
      "correlationId": "string",
      "causationId": "string"
    },
    "selectedRoute": {
      "schemaVersion": "route-intent-status/v1",
      "routeId": "string",
      "diagnosticId": "string",
      "source": "generated-default-access",
      "intent": {
        "host": "string",
        "pathPrefix": "string",
        "protocol": "http",
        "routeBehavior": "serve",
        "redirectTo": "string",
        "redirectStatus": 301
      },
      "context": {
        "resourceId": "string",
        "deploymentId": "string",
        "serverId": "string",
        "destinationId": "string",
        "runtimeTargetKind": "string"
      },
      "proxy": {
        "intent": "not-required",
        "applied": "not-configured",
        "providerKey": "string"
      },
      "domainVerification": "not-applicable",
      "tls": "not-applicable",
      "runtimeHealth": "healthy",
      "latestObservation": {
        "source": "resource-access-summary",
        "observedAt": "string",
        "requestId": "string",
        "deploymentId": "string"
      },
      "blockingReason": "runtime_not_ready",
      "recommendedAction": "none",
      "copySafeSummary": {
        "status": "available",
        "code": "string",
        "phase": "string",
        "message": "string"
      }
    },
    "routeIntentStatuses": [
      {
        "schemaVersion": "route-intent-status/v1",
        "routeId": "string",
        "diagnosticId": "string",
        "source": "generated-default-access",
        "intent": {
          "host": "string",
          "pathPrefix": "string",
          "protocol": "http",
          "routeBehavior": "serve",
          "redirectTo": "string",
          "redirectStatus": 301
        },
        "context": {
          "resourceId": "string",
          "deploymentId": "string",
          "serverId": "string",
          "destinationId": "string",
          "runtimeTargetKind": "string"
        },
        "proxy": {
          "intent": "not-required",
          "applied": "not-configured",
          "providerKey": "string"
        },
        "domainVerification": "not-applicable",
        "tls": "not-applicable",
        "runtimeHealth": "healthy",
        "latestObservation": {
          "source": "resource-access-summary",
          "observedAt": "string",
          "requestId": "string",
          "deploymentId": "string"
        },
        "blockingReason": "runtime_not_ready",
        "recommendedAction": "none",
        "copySafeSummary": {
          "status": "available",
          "code": "string",
          "phase": "string",
          "message": "string"
        }
      }
    ],
    "proxyRouteStatus": "unknown",
    "lastRouteRealizationDeploymentId": "string",
    "reasonCode": "string",
    "phase": "string"
  },
  "proxy": {
    "status": "available",
    "providerKey": "string",
    "proxyRouteStatus": "unknown",
    "configurationIncluded": true,
    "configurationStatus": "not-configured",
    "configurationGeneratedAt": "string",
    "routeCount": 0,
    "sectionCount": 0,
    "sections": [
      {
        "id": "string",
        "title": "string",
        "format": "docker-labels",
        "redacted": true,
        "source": "provider-rendered"
      }
    ],
    "tlsRoutes": [
      {
        "hostname": "string",
        "pathPrefix": "string",
        "tlsMode": "auto",
        "scheme": "http",
        "automation": "disabled",
        "certificateSource": "none",
        "appaloftCertificateManaged": true,
        "message": "string"
      }
    ],
    "warnings": [
      {
        "code": "string",
        "message": "string",
        "details": {
          "property1": "string",
          "property2": "string"
        }
      }
    ],
    "reasonCode": "string",
    "phase": "string"
  },
  "deploymentLogs": {
    "status": "available",
    "tailLimit": 0,
    "lineCount": 0,
    "lines": [
      {
        "timestamp": "string",
        "source": "appaloft",
        "phase": "detect",
        "level": "debug",
        "stream": "stdout",
        "serviceName": "string",
        "message": "string",
        "masked": true
      }
    ],
    "reasonCode": "string",
    "phase": "string"
  },
  "runtimeLogs": {
    "status": "available",
    "tailLimit": 0,
    "lineCount": 0,
    "lines": [
      {
        "timestamp": "string",
        "source": "appaloft",
        "phase": "detect",
        "level": "debug",
        "stream": "stdout",
        "serviceName": "string",
        "message": "string",
        "masked": true
      }
    ],
    "reasonCode": "string",
    "phase": "string"
  },
  "system": {
    "entrypoint": "cli",
    "requestId": "string",
    "locale": "string",
    "readinessStatus": "ready",
    "databaseDriver": "string",
    "databaseMode": "string"
  },
  "sourceErrors": [
    {
      "source": "deployment",
      "code": "string",
      "category": "string",
      "phase": "string",
      "retryable": true,
      "relatedEntityId": "string",
      "relatedState": "string",
      "message": "string"
    }
  ],
  "redaction": {
    "policy": "deployment-environment-secrets",
    "masked": true,
    "maskedValueCount": 0
  },
  "copy": {
    "json": "string",
    "markdown": "string",
    "plainText": "string"
  }
}
GET/resource-access-failures/{requestId}

Looks up short-retention, support-safe access failure evidence by request id. Public docs: /docs/observe/diagnostics/#access-failure-request-id-lookup

Path Parameters

requestId*string
Length1 <= length

Query Parameters

resourceId?string
Length1 <= length
hostname?string
Length1 <= length
path?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resource-access-failures/string"
{
  "schemaVersion": "resources.access-failure-evidence.lookup/v1",
  "requestId": "string",
  "generatedAt": "string",
  "filters": {
    "resourceId": "string",
    "hostname": "string",
    "path": "string"
  },
  "status": "found",
  "matchedSource": "short-retention-evidence-read-model",
  "evidence": {
    "schemaVersion": "resource-access-failure/v1",
    "requestId": "string",
    "generatedAt": "string",
    "code": "resource_access_route_not_found",
    "category": "infra",
    "phase": "edge-request-routing",
    "httpStatus": 404,
    "retriable": true,
    "ownerHint": "platform",
    "nextAction": "check-health",
    "affected": {
      "url": "string",
      "hostname": "string",
      "path": "string",
      "method": "string"
    },
    "route": {
      "host": "string",
      "pathPrefix": "string",
      "resourceId": "string",
      "deploymentId": "string",
      "domainBindingId": "string",
      "serverId": "string",
      "destinationId": "string",
      "providerKey": "string",
      "routeId": "string",
      "diagnosticId": "string",
      "routeSource": "generated-default",
      "routeStatus": "string"
    },
    "causeCode": "string",
    "correlationId": "string",
    "causationId": "string"
  },
  "relatedIds": {
    "resourceId": "string",
    "deploymentId": "string",
    "domainBindingId": "string",
    "serverId": "string",
    "destinationId": "string",
    "routeId": "string"
  },
  "nextAction": "check-health",
  "capturedAt": "string",
  "expiresAt": "string"
}
GET/resources/{resourceId}/health

Reads current resource health. Public docs: /docs/observe/logs-health/#observe-health-summary

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

mode?string
Default"cached"
Value in"cached" | "live"
includeChecks?boolean|string|string
includePublicAccessProbe?boolean|string|string
includeRuntimeProbe?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/resources/string/health"
{
  "schemaVersion": "resources.health/v1",
  "resourceId": "string",
  "generatedAt": "string",
  "observedAt": "string",
  "overall": "healthy",
  "latestDeployment": {
    "id": "string",
    "status": "created",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "serverId": "string",
    "destinationId": "string",
    "lastError": {
      "timestamp": "string",
      "phase": "detect",
      "message": "string"
    }
  },
  "runtime": {
    "lifecycle": "not-deployed",
    "health": "healthy",
    "observedAt": "string",
    "runtimeKind": "docker-container",
    "reasonCode": "string",
    "message": "string"
  },
  "latestRuntimeControl": {
    "runtimeControlAttemptId": "string",
    "operation": "stop",
    "status": "accepted",
    "startedAt": "string",
    "completedAt": "string",
    "runtimeState": "starting",
    "blockedReason": "resource-archived",
    "errorCode": "string",
    "phases": [
      {
        "phase": "stop",
        "status": "pending",
        "errorCode": "string"
      }
    ]
  },
  "healthPolicy": {
    "status": "configured",
    "enabled": true,
    "type": "http",
    "path": "string",
    "port": 0,
    "expectedStatusCode": 0,
    "intervalSeconds": 0,
    "timeoutSeconds": 0,
    "retries": 0,
    "startPeriodSeconds": 0,
    "reasonCode": "string"
  },
  "publicAccess": {
    "status": "ready",
    "url": "string",
    "kind": "durable-domain",
    "reasonCode": "string",
    "phase": "string",
    "routeIntentStatus": {
      "schemaVersion": "route-intent-status/v1",
      "routeId": "string",
      "diagnosticId": "string",
      "source": "generated-default-access",
      "intent": {
        "host": "string",
        "pathPrefix": "string",
        "protocol": "http",
        "routeBehavior": "serve",
        "redirectTo": "string",
        "redirectStatus": 301
      },
      "context": {
        "resourceId": "string",
        "deploymentId": "string",
        "serverId": "string",
        "destinationId": "string",
        "runtimeTargetKind": "string"
      },
      "proxy": {
        "intent": "not-required",
        "applied": "not-configured",
        "providerKey": "string"
      },
      "domainVerification": "not-applicable",
      "tls": "not-applicable",
      "runtimeHealth": "healthy",
      "latestObservation": {
        "source": "resource-access-summary",
        "observedAt": "string",
        "requestId": "string",
        "deploymentId": "string"
      },
      "blockingReason": "runtime_not_ready",
      "recommendedAction": "none",
      "copySafeSummary": {
        "status": "available",
        "code": "string",
        "phase": "string",
        "message": "string"
      }
    },
    "latestAccessFailure": {
      "schemaVersion": "resource-access-failure/v1",
      "requestId": "string",
      "generatedAt": "string",
      "code": "resource_access_route_not_found",
      "category": "infra",
      "phase": "edge-request-routing",
      "httpStatus": 404,
      "retriable": true,
      "ownerHint": "platform",
      "nextAction": "check-health",
      "affected": {
        "url": "string",
        "hostname": "string",
        "path": "string",
        "method": "string"
      },
      "route": {
        "host": "string",
        "pathPrefix": "string",
        "resourceId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "serverId": "string",
        "destinationId": "string",
        "providerKey": "string",
        "routeId": "string",
        "diagnosticId": "string",
        "routeSource": "generated-default",
        "routeStatus": "string"
      },
      "causeCode": "string",
      "correlationId": "string",
      "causationId": "string"
    }
  },
  "proxy": {
    "status": "ready",
    "providerKey": "string",
    "lastRouteRealizationDeploymentId": "string",
    "reasonCode": "string"
  },
  "checks": [
    {
      "name": "string",
      "target": "runtime",
      "status": "passed",
      "observedAt": "string",
      "durationMs": 0,
      "statusCode": 0,
      "exitCode": 0,
      "message": "string",
      "reasonCode": "string",
      "phase": "string",
      "retriable": true,
      "metadata": {
        "property1": "string",
        "property2": "string"
      }
    }
  ],
  "sourceErrors": [
    {
      "source": "deployment",
      "code": "string",
      "category": "string",
      "phase": "string",
      "retriable": true,
      "relatedEntityId": "string",
      "relatedState": "string",
      "message": "string"
    }
  ]
}
GET/resources/{resourceId}/health-history

Reads retained resource health observations for a bounded time window. Public docs: /docs/observe/logs-health/#observe-health-summary

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

window?
limit?integer
Default200
Range1 <= value <= 720
window.from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
window.to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time

Response Body

application/json

curl -X GET "https://example.com/resources/string/health-history"
{
  "schemaVersion": "resources.health-history/v1",
  "resourceId": "string",
  "from": "string",
  "to": "string",
  "generatedAt": "string",
  "observations": [
    {
      "observationId": "string",
      "observedAt": "string",
      "overall": "healthy",
      "runtimeLifecycle": "not-deployed",
      "runtimeHealth": "healthy",
      "publicAccessStatus": "ready",
      "proxyStatus": "ready",
      "healthPolicyStatus": "configured",
      "latestDeploymentId": "string",
      "summary": {
        "schemaVersion": "resources.health/v1",
        "resourceId": "string",
        "generatedAt": "string",
        "observedAt": "string",
        "overall": "healthy",
        "latestDeployment": {
          "id": "string",
          "status": "created",
          "createdAt": "string",
          "startedAt": "string",
          "finishedAt": "string",
          "serverId": "string",
          "destinationId": "string",
          "lastError": {
            "timestamp": "string",
            "phase": "detect",
            "message": "string"
          }
        },
        "runtime": {
          "lifecycle": "not-deployed",
          "health": "healthy",
          "observedAt": "string",
          "runtimeKind": "docker-container",
          "reasonCode": "string",
          "message": "string"
        },
        "latestRuntimeControl": {
          "runtimeControlAttemptId": "string",
          "operation": "stop",
          "status": "accepted",
          "startedAt": "string",
          "completedAt": "string",
          "runtimeState": "starting",
          "blockedReason": "resource-archived",
          "errorCode": "string",
          "phases": [
            {
              "phase": "stop",
              "status": "pending",
              "errorCode": "string"
            }
          ]
        },
        "healthPolicy": {
          "status": "configured",
          "enabled": true,
          "type": "http",
          "path": "string",
          "port": 0,
          "expectedStatusCode": 0,
          "intervalSeconds": 0,
          "timeoutSeconds": 0,
          "retries": 0,
          "startPeriodSeconds": 0,
          "reasonCode": "string"
        },
        "publicAccess": {
          "status": "ready",
          "url": "string",
          "kind": "durable-domain",
          "reasonCode": "string",
          "phase": "string",
          "routeIntentStatus": {
            "schemaVersion": "route-intent-status/v1",
            "routeId": "string",
            "diagnosticId": "string",
            "source": "generated-default-access",
            "intent": {
              "host": "string",
              "pathPrefix": "string",
              "protocol": "http",
              "routeBehavior": "serve",
              "redirectTo": "string",
              "redirectStatus": 301
            },
            "context": {
              "resourceId": "string",
              "deploymentId": "string",
              "serverId": "string",
              "destinationId": "string",
              "runtimeTargetKind": "string"
            },
            "proxy": {
              "intent": "not-required",
              "applied": "not-configured",
              "providerKey": "string"
            },
            "domainVerification": "not-applicable",
            "tls": "not-applicable",
            "runtimeHealth": "healthy",
            "latestObservation": {
              "source": "resource-access-summary",
              "observedAt": "string",
              "requestId": "string",
              "deploymentId": "string"
            },
            "blockingReason": "runtime_not_ready",
            "recommendedAction": "none",
            "copySafeSummary": {
              "status": "available",
              "code": "string",
              "phase": "string",
              "message": "string"
            }
          },
          "latestAccessFailure": {
            "schemaVersion": "resource-access-failure/v1",
            "requestId": "string",
            "generatedAt": "string",
            "code": "resource_access_route_not_found",
            "category": "infra",
            "phase": "edge-request-routing",
            "httpStatus": 404,
            "retriable": true,
            "ownerHint": "platform",
            "nextAction": "check-health",
            "affected": {
              "url": "string",
              "hostname": "string",
              "path": "string",
              "method": "string"
            },
            "route": {
              "host": "string",
              "pathPrefix": "string",
              "resourceId": "string",
              "deploymentId": "string",
              "domainBindingId": "string",
              "serverId": "string",
              "destinationId": "string",
              "providerKey": "string",
              "routeId": "string",
              "diagnosticId": "string",
              "routeSource": "generated-default",
              "routeStatus": "string"
            },
            "causeCode": "string",
            "correlationId": "string",
            "causationId": "string"
          }
        },
        "proxy": {
          "status": "ready",
          "providerKey": "string",
          "lastRouteRealizationDeploymentId": "string",
          "reasonCode": "string"
        },
        "checks": [
          {
            "name": "string",
            "target": "runtime",
            "status": "passed",
            "observedAt": "string",
            "durationMs": 0,
            "statusCode": 0,
            "exitCode": 0,
            "message": "string",
            "reasonCode": "string",
            "phase": "string",
            "retriable": true,
            "metadata": {
              "property1": "string",
              "property2": "string"
            }
          }
        ],
        "sourceErrors": [
          {
            "source": "deployment",
            "code": "string",
            "category": "string",
            "phase": "string",
            "retriable": true,
            "relatedEntityId": "string",
            "relatedState": "string",
            "message": "string"
          }
        ]
      }
    }
  ],
  "sourceErrors": [
    {
      "source": "deployment",
      "code": "string",
      "category": "string",
      "phase": "string",
      "retriable": true,
      "relatedEntityId": "string",
      "relatedState": "string",
      "message": "string"
    }
  ]
}
GET/resources/{resourceId}/proxy-configuration

Previews generated proxy configuration for a resource. Public docs: /docs/resources/profiles/health-network/#resource-network-profile

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

deploymentId?string
Length1 <= length
routeScope?string
Default"latest"
Value in"planned" | "latest" | "deployment-snapshot"
includeDiagnostics?boolean
Defaultfalse

Response Body

application/json

curl -X GET "https://example.com/resources/string/proxy-configuration"
{
  "resourceId": "string",
  "deploymentId": "string",
  "providerKey": "string",
  "routeScope": "planned",
  "status": "not-configured",
  "generatedAt": "string",
  "lastAppliedDeploymentId": "string",
  "stale": true,
  "routes": [
    {
      "hostname": "string",
      "scheme": "http",
      "url": "string",
      "pathPrefix": "string",
      "tlsMode": "auto",
      "targetPort": 1,
      "source": "generated-default",
      "routeBehavior": "serve",
      "redirectTo": "string",
      "redirectStatus": 301,
      "appliedRouteContext": {
        "schemaVersion": "applied-route-context/v1",
        "resourceId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "serverId": "string",
        "destinationId": "string",
        "routeId": "string",
        "diagnosticId": "string",
        "routeSource": "generated-default",
        "hostname": "string",
        "pathPrefix": "string",
        "proxyKind": "none",
        "providerKey": "string",
        "appliedAt": "string",
        "observedAt": "string"
      }
    }
  ],
  "sections": [
    {
      "id": "string",
      "title": "string",
      "format": "docker-labels",
      "language": "string",
      "readonly": true,
      "redacted": true,
      "content": "string",
      "source": "provider-rendered"
    }
  ],
  "warnings": [
    {
      "code": "string",
      "message": "string",
      "details": {
        "property1": "string",
        "property2": "string"
      }
    }
  ],
  "diagnostics": {
    "providerKey": "string",
    "routeCount": 0,
    "networkName": "string",
    "tlsRoutes": [
      {
        "hostname": "string",
        "pathPrefix": "string",
        "tlsMode": "auto",
        "scheme": "http",
        "automation": "disabled",
        "certificateSource": "none",
        "appaloftCertificateManaged": true,
        "message": "string",
        "details": {
          "property1": "string",
          "property2": "string"
        }
      }
    ],
    "appliedRouteContexts": [
      {
        "schemaVersion": "applied-route-context/v1",
        "resourceId": "string",
        "deploymentId": "string",
        "domainBindingId": "string",
        "serverId": "string",
        "destinationId": "string",
        "routeId": "string",
        "diagnosticId": "string",
        "routeSource": "generated-default",
        "hostname": "string",
        "pathPrefix": "string",
        "proxyKind": "none",
        "providerKey": "string",
        "appliedAt": "string",
        "observedAt": "string"
      }
    ],
    "metadata": {
      "property1": "string",
      "property2": "string"
    }
  }
}
GET/resources/{resourceId}/runtime-logs

Reads resource runtime logs. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

deploymentId?string
Length1 <= length
serviceName?string
Length1 <= length
tailLines?integer
Default100
Range0 <= value <= 1000
since?string
Length1 <= length
cursor?string
Length1 <= length
follow?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/resources/string/runtime-logs"
{
  "resourceId": "string",
  "deploymentId": "string",
  "logs": [
    {
      "resourceId": "string",
      "deploymentId": "string",
      "serviceName": "string",
      "runtimeKind": "string",
      "runtimeInstanceId": "string",
      "stream": "stdout",
      "timestamp": "string",
      "sequence": 0,
      "cursor": "string",
      "message": "string",
      "masked": true
    }
  ]
}
GET/resources/{resourceId}/runtime-logs/stream

Reads resource runtime logs. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Path Parameters

resourceId*string
Length1 <= length

Query Parameters

deploymentId?string
Length1 <= length
serviceName?string
Length1 <= length
tailLines?integer
Default100
Range0 <= value <= 1000
since?string
Length1 <= length
cursor?string
Length1 <= length
follow?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/resources/string/runtime-logs/stream"
null
POST/resources/{resourceId}/runtime-log-archives

Captures a bounded redacted resource runtime log archive snapshot. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/runtime-log-archives" \  -H "Content-Type: application/json" \  -d '{}'
{
  "schemaVersion": "resources.runtime-logs.archive/v1",
  "archive": {
    "archiveId": "string",
    "resourceId": "string",
    "deploymentId": "string",
    "serverId": "string",
    "serviceName": "string",
    "runtimeKind": "string",
    "capturedAt": "string",
    "lineCount": 0,
    "retentionStatus": "retained",
    "reason": "string",
    "lines": [
      {
        "resourceId": "string",
        "deploymentId": "string",
        "serviceName": "string",
        "runtimeKind": "string",
        "runtimeInstanceId": "string",
        "stream": "stdout",
        "timestamp": "string",
        "sequence": 0,
        "cursor": "string",
        "message": "string",
        "masked": true
      }
    ]
  }
}
GET/resources/runtime-log-archives

Lists retained Appaloft-owned resource runtime log archive snapshots. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Query Parameters

resourceId?string
Length1 <= length
deploymentId?string
Length1 <= length
serverId?string
Length1 <= length
serviceName?string
Length1 <= length
limit?integer
Default50
Range0 < value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/runtime-log-archives"
{
  "schemaVersion": "resources.runtime-log-archives.list/v1",
  "items": [
    {
      "archiveId": "string",
      "resourceId": "string",
      "deploymentId": "string",
      "serverId": "string",
      "serviceName": "string",
      "runtimeKind": "string",
      "capturedAt": "string",
      "lineCount": 0,
      "retentionStatus": "retained",
      "reason": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
GET/resources/runtime-log-archives/{archiveId}

Shows one retained Appaloft-owned resource runtime log archive snapshot. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Path Parameters

archiveId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/runtime-log-archives/string"
{
  "schemaVersion": "resources.runtime-log-archives.show/v1",
  "archive": {
    "archiveId": "string",
    "resourceId": "string",
    "deploymentId": "string",
    "serverId": "string",
    "serviceName": "string",
    "runtimeKind": "string",
    "capturedAt": "string",
    "lineCount": 0,
    "retentionStatus": "retained",
    "reason": "string",
    "lines": [
      {
        "resourceId": "string",
        "deploymentId": "string",
        "serviceName": "string",
        "runtimeKind": "string",
        "runtimeInstanceId": "string",
        "stream": "stdout",
        "timestamp": "string",
        "sequence": 0,
        "cursor": "string",
        "message": "string",
        "masked": true
      }
    ]
  }
}
POST/resources/runtime-log-archives/prune

Dry-runs or prunes retained resource runtime log archive snapshots. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/runtime-log-archives/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "resources.runtime-log-archives.prune/v1",
  "before": "string",
  "resourceId": "string",
  "deploymentId": "string",
  "serverId": "string",
  "serviceName": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "affectedResourceCount": 0,
  "prunedAt": "string"
}
POST/resources/{resourceId}/runtime/stop

Stops, starts, or restarts the current resource runtime without creating a deployment attempt. Public docs: /docs/observe/logs-health/#resource-runtime-controls

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/runtime/stop" \  -H "Content-Type: application/json" \  -d '{}'
{
  "runtimeControlAttemptId": "string",
  "operation": "stop",
  "status": "accepted",
  "startedAt": "string",
  "completedAt": "string",
  "runtimeState": "starting",
  "blockedReason": "resource-archived",
  "errorCode": "string",
  "phases": [
    {
      "phase": "stop",
      "status": "pending",
      "errorCode": "string"
    }
  ]
}
POST/resources/{resourceId}/runtime/start

Stops, starts, or restarts the current resource runtime without creating a deployment attempt. Public docs: /docs/observe/logs-health/#resource-runtime-controls

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/runtime/start" \  -H "Content-Type: application/json" \  -d '{}'
{
  "runtimeControlAttemptId": "string",
  "operation": "stop",
  "status": "accepted",
  "startedAt": "string",
  "completedAt": "string",
  "runtimeState": "starting",
  "blockedReason": "resource-archived",
  "errorCode": "string",
  "phases": [
    {
      "phase": "stop",
      "status": "pending",
      "errorCode": "string"
    }
  ]
}
POST/resources/{resourceId}/runtime/restart

Stops, starts, or restarts the current resource runtime without creating a deployment attempt. Public docs: /docs/observe/logs-health/#resource-runtime-controls

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/runtime/restart" \  -H "Content-Type: application/json" \  -d '{}'
{
  "runtimeControlAttemptId": "string",
  "operation": "stop",
  "status": "accepted",
  "startedAt": "string",
  "completedAt": "string",
  "runtimeState": "starting",
  "blockedReason": "resource-archived",
  "errorCode": "string",
  "phases": [
    {
      "phase": "stop",
      "status": "pending",
      "errorCode": "string"
    }
  ]
}
GET/resources/{resourceId}/dependency-bindings

Lists safe dependency binding summaries for one resource without exposing raw connection secrets. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

resourceId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/string/dependency-bindings"
{
  "schemaVersion": "resources.dependency-bindings.list/v1",
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "dependencyResourceId": "string",
      "dependencyResourceName": "string",
      "dependencyResourceSlug": "string",
      "kind": "postgres",
      "sourceMode": "appaloft-managed",
      "providerKey": "string",
      "providerManaged": true,
      "lifecycleStatus": "provisioning",
      "target": {
        "targetName": "string",
        "scope": "environment",
        "injectionMode": "env",
        "secretRef": "string"
      },
      "secretRotation": {
        "secretRef": "string",
        "secretVersion": "string",
        "rotatedAt": "string",
        "previousSecretVersion": "string"
      },
      "connection": {
        "host": "string",
        "port": 0,
        "databaseName": "string",
        "maskedConnection": "string",
        "secretRef": "string"
      },
      "bindingReadiness": {
        "status": "ready",
        "reason": "string"
      },
      "snapshotReadiness": {
        "status": "deferred",
        "reason": "string"
      },
      "status": "active",
      "createdAt": "string",
      "removedAt": "string"
    }
  ],
  "generatedAt": "string"
}
POST/resources/{resourceId}/dependency-bindings

Binds a ready Postgres dependency resource to a resource using safe control-plane metadata only. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/dependency-bindings" \  -H "Content-Type: application/json" \  -d '{    "dependencyResourceId": "string",    "targetName": "string"  }'
{
  "id": "string"
}
GET/resources/{resourceId}/dependency-bindings/{bindingId}

Reads one safe dependency binding summary for a resource without exposing raw connection secrets. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

resourceId*string
Length1 <= length
bindingId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/resources/string/dependency-bindings/string"
{
  "schemaVersion": "resources.dependency-bindings.show/v1",
  "binding": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "dependencyResourceId": "string",
    "dependencyResourceName": "string",
    "dependencyResourceSlug": "string",
    "kind": "postgres",
    "sourceMode": "appaloft-managed",
    "providerKey": "string",
    "providerManaged": true,
    "lifecycleStatus": "provisioning",
    "target": {
      "targetName": "string",
      "scope": "environment",
      "injectionMode": "env",
      "secretRef": "string"
    },
    "secretRotation": {
      "secretRef": "string",
      "secretVersion": "string",
      "rotatedAt": "string",
      "previousSecretVersion": "string"
    },
    "connection": {
      "host": "string",
      "port": 0,
      "databaseName": "string",
      "maskedConnection": "string",
      "secretRef": "string"
    },
    "bindingReadiness": {
      "status": "ready",
      "reason": "string"
    },
    "snapshotReadiness": {
      "status": "deferred",
      "reason": "string"
    },
    "status": "active",
    "createdAt": "string",
    "removedAt": "string"
  },
  "generatedAt": "string"
}
DELETE/resources/{resourceId}/dependency-bindings/{bindingId}

Removes a resource dependency binding without deleting the dependency resource or external database. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

resourceId*string
Length1 <= length
bindingId*string
Length1 <= length

Response Body

application/json

curl -X DELETE "https://example.com/resources/string/dependency-bindings/string"
{
  "id": "string"
}
POST/resources/{resourceId}/dependency-bindings/{bindingId}/secret-rotations

Rotates the safe secret reference used by a resource dependency binding for future deployments. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

resourceId*string
Length1 <= length
bindingId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/dependency-bindings/string/secret-rotations" \  -H "Content-Type: application/json" \  -d '{    "confirmHistoricalSnapshotsRemainUnchanged": true  }'
{
  "id": "string",
  "rotatedAt": "string",
  "secretVersion": "string"
}
GET/static-artifacts/publications

Query Parameters

projectId?string
Length1 <= length
resourceId?string
Length1 <= length
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/static-artifacts/publications"
{
  "schemaVersion": "static-artifacts.publications.list/v1",
  "items": [
    {
      "publicationId": "string",
      "projectId": "string",
      "resourceId": "string",
      "artifactId": "string",
      "manifestDigest": "string",
      "fileCount": 0,
      "totalBytes": 0,
      "storageRef": "string",
      "storageProviderKey": "string",
      "routeUrl": "string",
      "routeProviderKey": "string",
      "publishedAt": "string",
      "metadata": {
        "property1": "string",
        "property2": "string"
      }
    }
  ]
}
POST/static-artifacts/publish

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/static-artifacts/publish" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "resourceId": "string",    "sourcePath": "string"  }'
{
  "schemaVersion": "static-artifacts.publish/v1",
  "publicationId": "string",
  "projectId": "string",
  "resourceId": "string",
  "artifactId": "string",
  "manifestDigest": "string",
  "fileCount": 0,
  "totalBytes": 0,
  "files": [
    {
      "pathDigest": "string",
      "contentDigest": "string",
      "sizeBytes": 0,
      "mimeType": "string"
    }
  ],
  "storageRef": "string",
  "storageProviderKey": "string",
  "routeUrl": "string",
  "routeProviderKey": "string"
}
POST/static-artifacts/publish-archive

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/static-artifacts/publish-archive" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "resourceId": "string",    "archiveBase64": "string"  }'
{
  "schemaVersion": "static-artifacts.publish/v1",
  "publicationId": "string",
  "projectId": "string",
  "resourceId": "string",
  "artifactId": "string",
  "manifestDigest": "string",
  "fileCount": 0,
  "totalBytes": 0,
  "files": [
    {
      "pathDigest": "string",
      "contentDigest": "string",
      "sizeBytes": 0,
      "mimeType": "string"
    }
  ],
  "storageRef": "string",
  "storageProviderKey": "string",
  "routeUrl": "string",
  "routeProviderKey": "string"
}
POST/static-artifacts/publish-payload

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/static-artifacts/publish-payload" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "resourceId": "string",    "files": [      {        "path": "string",        "mimeType": "string",        "contentBase64": "string"      }    ]  }'
{
  "schemaVersion": "static-artifacts.publish/v1",
  "publicationId": "string",
  "projectId": "string",
  "resourceId": "string",
  "artifactId": "string",
  "manifestDigest": "string",
  "fileCount": 0,
  "totalBytes": 0,
  "files": [
    {
      "pathDigest": "string",
      "contentDigest": "string",
      "sizeBytes": 0,
      "mimeType": "string"
    }
  ],
  "storageRef": "string",
  "storageProviderKey": "string",
  "routeUrl": "string",
  "routeProviderKey": "string"
}
GET/storage-volumes

Lists storage volumes with safe resource attachment summaries. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Query Parameters

projectId?string
Length1 <= length
environmentId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/storage-volumes"
{
  "schemaVersion": "storage-volumes.list/v1",
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "name": "string",
      "slug": "string",
      "kind": "named-volume",
      "sourcePath": "string",
      "description": "string",
      "lifecycleStatus": "active",
      "backupRelationship": {
        "retentionRequired": true,
        "reason": "string"
      },
      "attachmentCount": 0,
      "attachments": [
        {
          "attachmentId": "string",
          "resourceId": "string",
          "resourceName": "string",
          "resourceSlug": "string",
          "destinationPath": "string",
          "mountMode": "read-write",
          "attachedAt": "string"
        }
      ],
      "createdAt": "string",
      "deletedAt": "string"
    }
  ],
  "generatedAt": "string"
}
POST/storage-volumes

Creates provider-neutral durable storage metadata for a named volume or bind mount. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/storage-volumes" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "environmentId": "string",    "name": "string",    "kind": "named-volume"  }'
{
  "id": "string"
}
GET/storage-volumes/{storageVolumeId}

Reads one storage volume with safe resource attachment summaries. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

storageVolumeId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/storage-volumes/string"
{
  "schemaVersion": "storage-volumes.show/v1",
  "storageVolume": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "name": "string",
    "slug": "string",
    "kind": "named-volume",
    "sourcePath": "string",
    "description": "string",
    "lifecycleStatus": "active",
    "backupRelationship": {
      "retentionRequired": true,
      "reason": "string"
    },
    "attachmentCount": 0,
    "attachments": [
      {
        "attachmentId": "string",
        "resourceId": "string",
        "resourceName": "string",
        "resourceSlug": "string",
        "destinationPath": "string",
        "mountMode": "read-write",
        "attachedAt": "string"
      }
    ],
    "createdAt": "string",
    "deletedAt": "string"
  },
  "generatedAt": "string"
}
DELETE/storage-volumes/{storageVolumeId}

Deletes only unattached storage volumes that are not blocked by backup retention metadata. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

storageVolumeId*string
Length1 <= length

Response Body

application/json

curl -X DELETE "https://example.com/storage-volumes/string"
{
  "id": "string"
}
POST/storage-volumes/{storageVolumeId}/rename

Renames one storage volume without changing resource attachments or runtime state. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

storageVolumeId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/storage-volumes/string/rename" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
POST/storage-volumes/{storageVolumeId}/runtime-cleanup

Dry-runs or explicitly removes safe Appaloft-owned runtime volume realizations for one storage volume on one server. Public docs: /docs/resources/storage-volumes/#storage-volume-lifecycle

Path Parameters

storageVolumeId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/storage-volumes/string/runtime-cleanup" \  -H "Content-Type: application/json" \  -d '{    "serverId": "string",    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "storage-volumes.cleanup-runtime/v1",
  "storageVolume": {
    "id": "string",
    "name": "string",
    "kind": "named-volume"
  },
  "server": {
    "id": "string",
    "name": "string",
    "host": "string",
    "port": 0,
    "providerKey": "string",
    "targetKind": "string"
  },
  "before": "string",
  "dryRun": true,
  "cleanedAt": "string",
  "summary": {
    "inspectedCount": 0,
    "matchedCount": 0,
    "cleanedCount": 0,
    "skippedCount": 0,
    "blockedCount": 0
  },
  "candidates": [
    {
      "id": "string",
      "kind": "named-volume",
      "target": "string",
      "updatedAt": "string",
      "action": "matched",
      "blockedReason": "active-attachment"
    }
  ],
  "warnings": [
    {
      "code": "string",
      "message": "string",
      "target": "string"
    }
  ]
}
GET/scheduled-tasks

Lists Resource-owned scheduled task definitions by project, environment, resource, status, cursor, and limit. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Query Parameters

projectId?string
Length1 <= length
environmentId?string
Length1 <= length
resourceId?string
Length1 <= length
status?string
Value in"enabled" | "disabled"
limit?integer
Range1 <= value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/scheduled-tasks"
{
  "schemaVersion": "scheduled-tasks.list/v1",
  "items": [
    {
      "taskId": "string",
      "resourceId": "string",
      "schedule": "string",
      "timezone": "string",
      "commandIntent": "string",
      "timeoutSeconds": 0,
      "retryLimit": 0,
      "concurrencyPolicy": "forbid",
      "status": "enabled",
      "createdAt": "string",
      "updatedAt": "string",
      "latestRun": {
        "runId": "string",
        "taskId": "string",
        "resourceId": "string",
        "triggerKind": "manual",
        "status": "accepted",
        "createdAt": "string",
        "startedAt": "string",
        "finishedAt": "string",
        "exitCode": 0,
        "failureSummary": "string",
        "skippedReason": "concurrency-forbidden"
      }
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
POST/scheduled-tasks

Creates a Resource-owned scheduled task definition without creating a deployment attempt. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/scheduled-tasks" \  -H "Content-Type: application/json" \  -d '{    "resourceId": "string",    "schedule": "string",    "timezone": "string",    "commandIntent": "string",    "timeoutSeconds": 1,    "retryLimit": 0  }'
{
  "schemaVersion": "scheduled-tasks.command/v1",
  "task": {
    "taskId": "string",
    "resourceId": "string",
    "schedule": "string",
    "timezone": "string",
    "commandIntent": "string",
    "timeoutSeconds": 0,
    "retryLimit": 0,
    "concurrencyPolicy": "forbid",
    "status": "enabled",
    "createdAt": "string",
    "updatedAt": "string",
    "latestRun": {
      "runId": "string",
      "taskId": "string",
      "resourceId": "string",
      "triggerKind": "manual",
      "status": "accepted",
      "createdAt": "string",
      "startedAt": "string",
      "finishedAt": "string",
      "exitCode": 0,
      "failureSummary": "string",
      "skippedReason": "concurrency-forbidden"
    }
  }
}
GET/scheduled-tasks/{taskId}

Reads one Resource-owned scheduled task definition with latest run summary. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

taskId*string
Length1 <= length

Query Parameters

resourceId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/scheduled-tasks/string"
{
  "schemaVersion": "scheduled-tasks.show/v1",
  "task": {
    "taskId": "string",
    "resourceId": "string",
    "schedule": "string",
    "timezone": "string",
    "commandIntent": "string",
    "timeoutSeconds": 0,
    "retryLimit": 0,
    "concurrencyPolicy": "forbid",
    "status": "enabled",
    "createdAt": "string",
    "updatedAt": "string",
    "latestRun": {
      "runId": "string",
      "taskId": "string",
      "resourceId": "string",
      "triggerKind": "manual",
      "status": "accepted",
      "createdAt": "string",
      "startedAt": "string",
      "finishedAt": "string",
      "exitCode": 0,
      "failureSummary": "string",
      "skippedReason": "concurrency-forbidden"
    }
  },
  "generatedAt": "string"
}
POST/scheduled-tasks/{taskId}

Configures schedule, command, timeout, retry, or enabled state for one scheduled task. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

taskId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/scheduled-tasks/string" \  -H "Content-Type: application/json" \  -d '{    "resourceId": "string"  }'
{
  "schemaVersion": "scheduled-tasks.command/v1",
  "task": {
    "taskId": "string",
    "resourceId": "string",
    "schedule": "string",
    "timezone": "string",
    "commandIntent": "string",
    "timeoutSeconds": 0,
    "retryLimit": 0,
    "concurrencyPolicy": "forbid",
    "status": "enabled",
    "createdAt": "string",
    "updatedAt": "string",
    "latestRun": {
      "runId": "string",
      "taskId": "string",
      "resourceId": "string",
      "triggerKind": "manual",
      "status": "accepted",
      "createdAt": "string",
      "startedAt": "string",
      "finishedAt": "string",
      "exitCode": 0,
      "failureSummary": "string",
      "skippedReason": "concurrency-forbidden"
    }
  }
}
DELETE/scheduled-tasks/{taskId}

Deletes one scheduled task definition without deleting the Resource or deployment history. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

taskId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/scheduled-tasks/string" \  -H "Content-Type: application/json" \  -d '{    "resourceId": "string"  }'
{
  "schemaVersion": "scheduled-tasks.delete/v1",
  "taskId": "string",
  "resourceId": "string",
  "status": "deleted",
  "deletedAt": "string"
}
POST/scheduled-tasks/{taskId}/runs

Accepts one immediate scheduled task run and returns before task execution completes. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

taskId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/scheduled-tasks/string/runs" \  -H "Content-Type: application/json" \  -d '{    "resourceId": "string"  }'
{
  "schemaVersion": "scheduled-tasks.run-now/v1",
  "run": {
    "runId": "string",
    "taskId": "string",
    "resourceId": "string",
    "triggerKind": "manual",
    "status": "accepted",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "exitCode": 0,
    "failureSummary": "string",
    "skippedReason": "concurrency-forbidden"
  }
}
GET/scheduled-task-runs

Lists scheduled task run attempts by task, resource, status, trigger kind, cursor, and limit. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Query Parameters

taskId?string
Length1 <= length
resourceId?string
Length1 <= length
status?string
Value in"accepted" | "running" | "succeeded" | "failed" | "skipped"
triggerKind?string
Value in"manual" | "scheduled"
limit?integer
Range1 <= value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/scheduled-task-runs"
{
  "schemaVersion": "scheduled-task-runs.list/v1",
  "items": [
    {
      "runId": "string",
      "taskId": "string",
      "resourceId": "string",
      "triggerKind": "manual",
      "status": "accepted",
      "createdAt": "string",
      "startedAt": "string",
      "finishedAt": "string",
      "exitCode": 0,
      "failureSummary": "string",
      "skippedReason": "concurrency-forbidden"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
GET/scheduled-task-runs/{runId}

Reads one scheduled task run attempt with safe status and terminal details. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

runId*string
Length1 <= length

Query Parameters

taskId?string
Length1 <= length
resourceId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/scheduled-task-runs/string"
{
  "schemaVersion": "scheduled-task-runs.show/v1",
  "run": {
    "runId": "string",
    "taskId": "string",
    "resourceId": "string",
    "triggerKind": "manual",
    "status": "accepted",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "exitCode": 0,
    "failureSummary": "string",
    "skippedReason": "concurrency-forbidden"
  },
  "generatedAt": "string"
}
GET/scheduled-task-runs/{runId}/logs

Reads run-scoped scheduled task logs without mixing them into deployment or resource runtime logs. Public docs: /docs/resources/scheduled-tasks/#scheduled-task-resource-lifecycle

Path Parameters

runId*string
Length1 <= length

Query Parameters

taskId?string
Length1 <= length
resourceId?string
Length1 <= length
cursor?string
Length1 <= length
limit?integer
Range1 <= value <= 100

Response Body

application/json

curl -X GET "https://example.com/scheduled-task-runs/string/logs"
{
  "schemaVersion": "scheduled-task-runs.logs/v1",
  "runId": "string",
  "taskId": "string",
  "resourceId": "string",
  "entries": [
    {
      "timestamp": "string",
      "stream": "stdout",
      "message": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
POST/dependency-resources/provisioning/plan

Creates a safe dependency resource provisioning plan for create or reuse mode without mutating provider resources. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/provisioning/plan" \  -H "Content-Type: application/json" \  -d '{    "mode": "create",    "create": {      "kind": "postgres",      "projectId": "string",      "environmentId": "string",      "name": "string"    }  }'
{
  "schemaVersion": "dependency-resource-provisioning.plan/v1",
  "plan": {
    "id": "string",
    "mode": "create",
    "status": "planned",
    "kind": "postgres",
    "projectId": "string",
    "environmentId": "string",
    "name": "string",
    "providerKey": "string",
    "serverId": "string",
    "endpoint": "string",
    "capabilities": [
      {
        "type": "postgres-extension",
        "name": "string",
        "required": true,
        "description": "string"
      }
    ],
    "requiresAcceptance": true,
    "requestedAt": "string",
    "acceptedAt": "string",
    "completedAt": "string",
    "dependencyResourceId": "string",
    "failureCode": "string",
    "failureMessage": "string",
    "summary": [
      "string"
    ]
  },
  "generatedAt": "string"
}
POST/dependency-resources/provisioning/{planId}/accept

Accepts a dependency resource provisioning plan and then performs the planned create or reuse mutation. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

planId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

acknowledgeMutation*boolean

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/provisioning/string/accept" \  -H "Content-Type: application/json" \  -d '{    "acknowledgeMutation": true  }'
{
  "schemaVersion": "dependency-resource-provisioning.plan/v1",
  "plan": {
    "id": "string",
    "mode": "create",
    "status": "planned",
    "kind": "postgres",
    "projectId": "string",
    "environmentId": "string",
    "name": "string",
    "providerKey": "string",
    "serverId": "string",
    "endpoint": "string",
    "capabilities": [
      {
        "type": "postgres-extension",
        "name": "string",
        "required": true,
        "description": "string"
      }
    ],
    "requiresAcceptance": true,
    "requestedAt": "string",
    "acceptedAt": "string",
    "completedAt": "string",
    "dependencyResourceId": "string",
    "failureCode": "string",
    "failureMessage": "string",
    "summary": [
      "string"
    ]
  },
  "generatedAt": "string"
}
GET/dependency-resources/provisioning/{planId}

Reads dependency resource provisioning plan status and safe realization readback. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

planId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/provisioning/string"
{
  "schemaVersion": "dependency-resource-provisioning.plan/v1",
  "plan": {
    "id": "string",
    "mode": "create",
    "status": "planned",
    "kind": "postgres",
    "projectId": "string",
    "environmentId": "string",
    "name": "string",
    "providerKey": "string",
    "serverId": "string",
    "endpoint": "string",
    "capabilities": [
      {
        "type": "postgres-extension",
        "name": "string",
        "required": true,
        "description": "string"
      }
    ],
    "requiresAcceptance": true,
    "requestedAt": "string",
    "acceptedAt": "string",
    "completedAt": "string",
    "dependencyResourceId": "string",
    "failureCode": "string",
    "failureMessage": "string",
    "summary": [
      "string"
    ]
  },
  "generatedAt": "string"
}
GET/dependency-resources/count

Lists dependency resources with ownership, masked connection, binding readiness, and backup relationship summaries. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Query Parameters

projectId?string
Length1 <= length
environmentId?string
Length1 <= length
kind?string
Value in"postgres" | "redis" | "mysql" | "clickhouse" | "object-storage" | "opensearch"

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/count"
{
  "count": 0
}
POST/dependency-resources/provision

Provisions an Appaloft-managed dependency resource of the requested kind through the configured provider capability. When serverId is supplied, the default shell provider realizes Docker-backed infrastructure on that single-server target. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/provision" \  -H "Content-Type: application/json" \  -d '{    "kind": "postgres",    "projectId": "string",    "environmentId": "string",    "name": "string"  }'
{
  "id": "string"
}
POST/dependency-resources/import

Imports external dependency resource metadata while keeping raw connection secrets outside list and show responses. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/import" \  -H "Content-Type: application/json" \  -d '{    "kind": "postgres",    "projectId": "string",    "environmentId": "string",    "name": "string",    "connectionUrl": "string"  }'
{
  "id": "string"
}
GET/dependency-resources

Lists dependency resources with ownership, masked connection, binding readiness, and backup relationship summaries. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Query Parameters

projectId?string
Length1 <= length
environmentId?string
Length1 <= length
kind?string
Value in"postgres" | "redis" | "mysql" | "clickhouse" | "object-storage" | "opensearch"
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/dependency-resources"
{
  "schemaVersion": "dependency-resources.list/v1",
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "name": "string",
      "slug": "string",
      "kind": "postgres",
      "sourceMode": "appaloft-managed",
      "providerKey": "string",
      "providerManaged": true,
      "description": "string",
      "lifecycleStatus": "provisioning",
      "connection": {
        "host": "string",
        "port": 0,
        "databaseName": "string",
        "maskedConnection": "string",
        "secretRef": "string"
      },
      "providerRealization": {
        "status": "pending",
        "attemptId": "string",
        "attemptedAt": "string",
        "providerResourceHandle": "string",
        "realizedAt": "string",
        "failedAt": "string",
        "failureCode": "string",
        "failureMessage": "string"
      },
      "desiredCapabilities": [
        {
          "type": "postgres-extension",
          "name": "string",
          "required": true,
          "description": "string"
        }
      ],
      "capabilityReadbacks": [
        {
          "type": "postgres-extension",
          "name": "string",
          "required": true,
          "status": "satisfied",
          "evidence": [
            "string"
          ],
          "version": "string",
          "checkedAt": "string"
        }
      ],
      "bindingReadiness": {
        "status": "ready",
        "reason": "string"
      },
      "backupRelationship": {
        "retentionRequired": true,
        "reason": "string"
      },
      "deleteSafety": {
        "blockers": [
          {
            "kind": "resource-binding",
            "relatedEntityId": "string",
            "relatedEntityType": "string",
            "count": 0
          }
        ]
      },
      "createdAt": "string",
      "deletedAt": "string"
    }
  ],
  "generatedAt": "string"
}
GET/dependency-resources/{dependencyResourceId}

Reads one dependency resource with masked connection and delete-safety metadata. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

dependencyResourceId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/string"
{
  "schemaVersion": "dependency-resources.show/v1",
  "dependencyResource": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "name": "string",
    "slug": "string",
    "kind": "postgres",
    "sourceMode": "appaloft-managed",
    "providerKey": "string",
    "providerManaged": true,
    "description": "string",
    "lifecycleStatus": "provisioning",
    "connection": {
      "host": "string",
      "port": 0,
      "databaseName": "string",
      "maskedConnection": "string",
      "secretRef": "string"
    },
    "providerRealization": {
      "status": "pending",
      "attemptId": "string",
      "attemptedAt": "string",
      "providerResourceHandle": "string",
      "realizedAt": "string",
      "failedAt": "string",
      "failureCode": "string",
      "failureMessage": "string"
    },
    "desiredCapabilities": [
      {
        "type": "postgres-extension",
        "name": "string",
        "required": true,
        "description": "string"
      }
    ],
    "capabilityReadbacks": [
      {
        "type": "postgres-extension",
        "name": "string",
        "required": true,
        "status": "satisfied",
        "evidence": [
          "string"
        ],
        "version": "string",
        "checkedAt": "string"
      }
    ],
    "bindingReadiness": {
      "status": "ready",
      "reason": "string"
    },
    "backupRelationship": {
      "retentionRequired": true,
      "reason": "string"
    },
    "deleteSafety": {
      "blockers": [
        {
          "kind": "resource-binding",
          "relatedEntityId": "string",
          "relatedEntityType": "string",
          "count": 0
        }
      ]
    },
    "createdAt": "string",
    "deletedAt": "string"
  },
  "generatedAt": "string"
}
DELETE/dependency-resources/{dependencyResourceId}

Deletes only dependency resources that are not blocked by bindings, backup relationships, provider-managed unsafe state, or snapshot references. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

dependencyResourceId*string
Length1 <= length

Response Body

application/json

curl -X DELETE "https://example.com/dependency-resources/string"
{
  "id": "string"
}
POST/dependency-resources/{dependencyResourceId}/rename

Renames one dependency resource without changing provider ownership, bindings, or connection secret boundaries. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

dependencyResourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/string/rename" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string"
}
GET/dependency-resources/{dependencyResourceId}/backups

Lists dependency resource backups without exposing provider-native artifact secrets. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

dependencyResourceId*string
Length1 <= length

Query Parameters

status?string
Value in"pending" | "ready" | "failed"

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/string/backups"
{
  "schemaVersion": "dependency-resources.backups.list/v1",
  "items": [
    {
      "id": "string",
      "dependencyResourceId": "string",
      "projectId": "string",
      "environmentId": "string",
      "dependencyKind": "postgres",
      "providerKey": "string",
      "status": "pending",
      "attemptId": "string",
      "requestedAt": "string",
      "retentionStatus": "retained",
      "providerArtifactHandle": "string",
      "completedAt": "string",
      "failedAt": "string",
      "failureCode": "string",
      "failureMessage": "string",
      "latestRestoreAttempt": {
        "attemptId": "string",
        "status": "pending",
        "requestedAt": "string",
        "completedAt": "string",
        "failedAt": "string",
        "failureCode": "string",
        "failureMessage": "string"
      },
      "createdAt": "string"
    }
  ],
  "generatedAt": "string"
}
POST/dependency-resources/{dependencyResourceId}/backups

Creates a dependency resource backup through the selected provider while recording safe artifact metadata. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

dependencyResourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/string/backups" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
GET/dependency-resources/backups/{backupId}

Reads one dependency resource backup with latest restore attempt metadata. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

backupId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/backups/string"
{
  "schemaVersion": "dependency-resources.backups.show/v1",
  "backup": {
    "id": "string",
    "dependencyResourceId": "string",
    "projectId": "string",
    "environmentId": "string",
    "dependencyKind": "postgres",
    "providerKey": "string",
    "status": "pending",
    "attemptId": "string",
    "requestedAt": "string",
    "retentionStatus": "retained",
    "providerArtifactHandle": "string",
    "completedAt": "string",
    "failedAt": "string",
    "failureCode": "string",
    "failureMessage": "string",
    "latestRestoreAttempt": {
      "attemptId": "string",
      "status": "pending",
      "requestedAt": "string",
      "completedAt": "string",
      "failedAt": "string",
      "failureCode": "string",
      "failureMessage": "string"
    },
    "createdAt": "string"
  },
  "generatedAt": "string"
}
POST/dependency-resources/backups/{backupId}/restore

Restores a ready dependency resource backup after explicit data-overwrite acknowledgements. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

backupId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/backups/string/restore" \  -H "Content-Type: application/json" \  -d '{    "acknowledgeDataOverwrite": true,    "acknowledgeRuntimeNotRestarted": true  }'
{
  "id": "string"
}
GET/dependency-resources/backup-policies

Lists scheduled dependency backup policies and due-run metadata without exposing provider secrets. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Query Parameters

dependencyResourceId?string
Length1 <= length
enabledOnly?boolean|string
dueAt?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/backup-policies"
{
  "schemaVersion": "dependency-resource-backup-policies.list/v1",
  "items": [
    {
      "schemaVersion": "dependency-resource-backup-policies.policy/v1",
      "id": "string",
      "version": "string",
      "dependencyResourceId": "string",
      "retentionDays": 0,
      "scheduleIntervalHours": 0,
      "providerKey": "string",
      "retryOnFailure": true,
      "enabled": true,
      "lastRunAt": "string",
      "nextRunAt": "string",
      "updatedAt": "string"
    }
  ]
}
POST/dependency-resources/backup-policies

Configures an opt-in scheduled dependency backup policy used by the scheduler handoff. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/dependency-resources/backup-policies" \  -H "Content-Type: application/json" \  -d '{    "dependencyResourceId": "string",    "retentionDays": 1,    "scheduleIntervalHours": 1  }'
{
  "id": "string"
}
GET/dependency-resources/backup-policies/{policyId}

Reads one scheduled dependency backup policy and its last/next run metadata. Public docs: /docs/resources/dependencies/#dependency-resource-lifecycle

Path Parameters

policyId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/dependency-resources/backup-policies/string"
{
  "schemaVersion": "dependency-resource-backup-policies.show/v1",
  "policy": {
    "schemaVersion": "dependency-resource-backup-policies.policy/v1",
    "id": "string",
    "version": "string",
    "dependencyResourceId": "string",
    "retentionDays": 0,
    "scheduleIntervalHours": 0,
    "providerKey": "string",
    "retryOnFailure": true,
    "enabled": true,
    "lastRunAt": "string",
    "nextRunAt": "string",
    "updatedAt": "string"
  }
}
GET/terminal-sessions

Lists, shows, closes, or expires active terminal sessions without exposing terminal output. Public docs: /docs/servers/operations/proxy-and-terminal/#server-terminal-session

Query Parameters

scope?string
Value in"server" | "resource"
serverId?string
Length1 <= length
resourceId?string
Length1 <= length
deploymentId?string
Length1 <= length
limit?|

Response Body

application/json

curl -X GET "https://example.com/terminal-sessions"
{
  "schemaVersion": "terminal-sessions.list/v1",
  "items": [
    {
      "sessionId": "string",
      "scope": "server",
      "serverId": "string",
      "resourceId": "string",
      "deploymentId": "string",
      "transport": {
        "kind": "websocket",
        "path": "string"
      },
      "providerKey": "string",
      "workingDirectory": "string",
      "createdAt": "string",
      "status": "active"
    }
  ]
}
POST/terminal-sessions

Opens a controlled terminal session for server or resource troubleshooting. Public docs: /docs/servers/operations/proxy-and-terminal/#server-terminal-session

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/terminal-sessions" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "server",      "serverId": "string"    }  }'
{
  "sessionId": "string",
  "scope": "server",
  "serverId": "string",
  "resourceId": "string",
  "deploymentId": "string",
  "transport": {
    "kind": "websocket",
    "path": "string"
  },
  "providerKey": "string",
  "workingDirectory": "string",
  "createdAt": "string"
}
GET/terminal-sessions/{sessionId}

Lists, shows, closes, or expires active terminal sessions without exposing terminal output. Public docs: /docs/servers/operations/proxy-and-terminal/#server-terminal-session

Path Parameters

sessionId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/terminal-sessions/string"
{
  "schemaVersion": "terminal-sessions.show/v1",
  "item": {
    "sessionId": "string",
    "scope": "server",
    "serverId": "string",
    "resourceId": "string",
    "deploymentId": "string",
    "transport": {
      "kind": "websocket",
      "path": "string"
    },
    "providerKey": "string",
    "workingDirectory": "string",
    "createdAt": "string",
    "status": "active"
  }
}
POST/terminal-sessions/{sessionId}/close

Lists, shows, closes, or expires active terminal sessions without exposing terminal output. Public docs: /docs/servers/operations/proxy-and-terminal/#server-terminal-session

Path Parameters

sessionId*string
Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/terminal-sessions/string/close"
{
  "sessionId": "string",
  "closed": true,
  "status": "closed"
}
POST/terminal-sessions/expire

Lists, shows, closes, or expires active terminal sessions without exposing terminal output. Public docs: /docs/servers/operations/proxy-and-terminal/#server-terminal-session

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/terminal-sessions/expire" \  -H "Content-Type: application/json" \  -d '{}'
{
  "expiredCount": 0,
  "sessionIds": [
    "string"
  ]
}
GET/domain-bindings

Query Parameters

projectId?string
environmentId?string
resourceId?string
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/domain-bindings"
{
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "serverId": "string",
      "destinationId": "string",
      "domainName": "string",
      "pathPrefix": "string",
      "proxyKind": "none",
      "tlsMode": "auto",
      "redirectTo": "string",
      "redirectStatus": 301,
      "certificatePolicy": "auto",
      "status": "requested",
      "dnsObservation": {
        "status": "pending",
        "expectedTargets": [
          "string"
        ],
        "observedTargets": [
          "string"
        ],
        "checkedAt": "string",
        "message": "string"
      },
      "verificationAttemptCount": 0,
      "createdAt": "string"
    }
  ]
}
POST/domain-bindings

Creates a custom domain binding for a resource. Public docs: /docs/access/domains/custom-domains/#domain-binding-purpose

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/domain-bindings" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "environmentId": "string",    "resourceId": "string",    "serverId": "string",    "destinationId": "string",    "domainName": "string",    "proxyKind": "none"  }'
{
  "id": "string"
}
GET/domain-bindings/{domainBindingId}

Reads custom domain binding ownership, route readiness, proxy readiness, diagnostics, and certificate readiness. Public docs: /docs/access/domains/custom-domains/#domain-binding-purpose

Path Parameters

domainBindingId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/domain-bindings/string"
{
  "binding": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "serverId": "string",
    "destinationId": "string",
    "domainName": "string",
    "pathPrefix": "string",
    "proxyKind": "none",
    "tlsMode": "auto",
    "redirectTo": "string",
    "redirectStatus": 301,
    "certificatePolicy": "auto",
    "status": "requested",
    "dnsObservation": {
      "status": "pending",
      "expectedTargets": [
        "string"
      ],
      "observedTargets": [
        "string"
      ],
      "checkedAt": "string",
      "message": "string"
    },
    "verificationAttemptCount": 0,
    "createdAt": "string"
  },
  "routeReadiness": {
    "status": "ready",
    "routeBehavior": "serve",
    "selectedRoute": {
      "schemaVersion": "route-intent-status/v1",
      "routeId": "string",
      "diagnosticId": "string",
      "source": "generated-default-access",
      "intent": {
        "host": "string",
        "pathPrefix": "string",
        "protocol": "http",
        "routeBehavior": "serve",
        "redirectTo": "string",
        "redirectStatus": 301
      },
      "context": {
        "resourceId": "string",
        "deploymentId": "string",
        "serverId": "string",
        "destinationId": "string",
        "runtimeTargetKind": "string"
      },
      "proxy": {
        "intent": "not-required",
        "applied": "not-configured",
        "providerKey": "string"
      },
      "domainVerification": "not-applicable",
      "tls": "not-applicable",
      "runtimeHealth": "healthy",
      "latestObservation": {
        "source": "resource-access-summary",
        "observedAt": "string",
        "requestId": "string",
        "deploymentId": "string"
      },
      "blockingReason": "runtime_not_ready",
      "recommendedAction": "none",
      "copySafeSummary": {
        "status": "available",
        "code": "string",
        "phase": "string",
        "message": "string"
      }
    },
    "contextRoutes": [
      {
        "schemaVersion": "route-intent-status/v1",
        "routeId": "string",
        "diagnosticId": "string",
        "source": "generated-default-access",
        "intent": {
          "host": "string",
          "pathPrefix": "string",
          "protocol": "http",
          "routeBehavior": "serve",
          "redirectTo": "string",
          "redirectStatus": 301
        },
        "context": {
          "resourceId": "string",
          "deploymentId": "string",
          "serverId": "string",
          "destinationId": "string",
          "runtimeTargetKind": "string"
        },
        "proxy": {
          "intent": "not-required",
          "applied": "not-configured",
          "providerKey": "string"
        },
        "domainVerification": "not-applicable",
        "tls": "not-applicable",
        "runtimeHealth": "healthy",
        "latestObservation": {
          "source": "resource-access-summary",
          "observedAt": "string",
          "requestId": "string",
          "deploymentId": "string"
        },
        "blockingReason": "runtime_not_ready",
        "recommendedAction": "none",
        "copySafeSummary": {
          "status": "available",
          "code": "string",
          "phase": "string",
          "message": "string"
        }
      }
    ]
  },
  "generatedAccessFallback": {
    "url": "string",
    "hostname": "string",
    "scheme": "http",
    "providerKey": "string",
    "deploymentId": "string",
    "deploymentStatus": "created",
    "pathPrefix": "string",
    "proxyKind": "none",
    "targetPort": 1,
    "updatedAt": "string"
  },
  "proxyReadiness": "unknown",
  "certificates": [
    {
      "id": "string",
      "domainBindingId": "string",
      "domainName": "string",
      "status": "pending",
      "source": "managed",
      "providerKey": "string",
      "challengeType": "string",
      "issuedAt": "string",
      "expiresAt": "string",
      "fingerprint": "string",
      "notBefore": "string",
      "issuer": "string",
      "keyAlgorithm": "string",
      "subjectAlternativeNames": [
        "string"
      ],
      "latestAttempt": {
        "id": "string",
        "status": "requested",
        "reason": "issue",
        "providerKey": "string",
        "challengeType": "string",
        "requestedAt": "string",
        "issuedAt": "string",
        "expiresAt": "string",
        "failedAt": "string",
        "errorCode": "string",
        "failurePhase": "string",
        "failureMessage": "string",
        "retriable": true,
        "retryAfter": "string"
      },
      "attempts": [
        {
          "id": "string",
          "status": "requested",
          "reason": "issue",
          "providerKey": "string",
          "challengeType": "string",
          "requestedAt": "string",
          "issuedAt": "string",
          "expiresAt": "string",
          "failedAt": "string",
          "errorCode": "string",
          "failurePhase": "string",
          "failureMessage": "string",
          "retriable": true,
          "retryAfter": "string"
        }
      ],
      "createdAt": "string"
    }
  ],
  "deleteSafety": {
    "domainBindingId": "string",
    "safeToDelete": true,
    "blockers": [
      {
        "kind": "active-certificate",
        "severity": "blocking",
        "message": "string",
        "relatedEntityType": "string",
        "relatedEntityId": "string",
        "count": 0
      }
    ],
    "warnings": [
      {
        "kind": "active-certificate",
        "severity": "blocking",
        "message": "string",
        "relatedEntityType": "string",
        "relatedEntityId": "string",
        "count": 0
      }
    ],
    "preservesGeneratedAccess": true,
    "preservesDeploymentSnapshots": true,
    "preservesServerAppliedRouteAudit": true
  }
}
DELETE/domain-bindings/{domainBindingId}

Deletes custom domain binding route intent while preserving generated access, deployment snapshots, and server-applied route audit. Public docs: /docs/access/domains/custom-domains/#domain-binding-purpose

Path Parameters

domainBindingId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/domain-bindings/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "domainBindingId": "string"    }  }'
{
  "id": "string"
}
POST/domain-bindings/{domainBindingId}/route

Configures whether a custom domain binding serves traffic or redirects to a canonical binding. Public docs: /docs/access/domains/custom-domains/#domain-binding-purpose

Path Parameters

domainBindingId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/domain-bindings/string/route" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/domain-bindings/{domainBindingId}/ownership-confirmations

Confirms that a user controls the custom domain. Public docs: /docs/access/domains/ownership/#domain-binding-ownership-check

Path Parameters

domainBindingId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/domain-bindings/string/ownership-confirmations" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "verificationAttemptId": "string"
}
GET/domain-bindings/{domainBindingId}/delete-check

Checks whether a custom domain binding can be deleted without revoking certificates or erasing history. Public docs: /docs/access/domains/custom-domains/#domain-binding-purpose

Path Parameters

domainBindingId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/domain-bindings/string/delete-check"
{
  "domainBindingId": "string",
  "safeToDelete": true,
  "blockers": [
    {
      "kind": "active-certificate",
      "severity": "blocking",
      "message": "string",
      "relatedEntityType": "string",
      "relatedEntityId": "string",
      "count": 0
    }
  ],
  "warnings": [
    {
      "kind": "active-certificate",
      "severity": "blocking",
      "message": "string",
      "relatedEntityType": "string",
      "relatedEntityId": "string",
      "count": 0
    }
  ],
  "preservesGeneratedAccess": true,
  "preservesDeploymentSnapshots": true,
  "preservesServerAppliedRouteAudit": true
}
POST/domain-bindings/{domainBindingId}/verification-retries

Starts a new domain ownership verification attempt without retrying certificate issuance. Public docs: /docs/access/domains/ownership/#domain-binding-ownership-check

Path Parameters

domainBindingId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/domain-bindings/string/verification-retries" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "verificationAttemptId": "string"
}
POST/certificates/import

Imports a manual certificate for a domain binding. Public docs: /docs/access/tls/certificates/#certificate-readiness

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/certificates/import" \  -H "Content-Type: application/json" \  -d '{    "domainBindingId": "string",    "certificateChain": "string",    "privateKey": "string"  }'
{
  "certificateId": "string",
  "attemptId": "string"
}
GET/certificates

Query Parameters

domainBindingId?string
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/certificates"
{
  "items": [
    {
      "id": "string",
      "domainBindingId": "string",
      "domainName": "string",
      "status": "pending",
      "source": "managed",
      "providerKey": "string",
      "challengeType": "string",
      "issuedAt": "string",
      "expiresAt": "string",
      "fingerprint": "string",
      "notBefore": "string",
      "issuer": "string",
      "keyAlgorithm": "string",
      "subjectAlternativeNames": [
        "string"
      ],
      "latestAttempt": {
        "id": "string",
        "status": "requested",
        "reason": "issue",
        "providerKey": "string",
        "challengeType": "string",
        "requestedAt": "string",
        "issuedAt": "string",
        "expiresAt": "string",
        "failedAt": "string",
        "errorCode": "string",
        "failurePhase": "string",
        "failureMessage": "string",
        "retriable": true,
        "retryAfter": "string"
      },
      "attempts": [
        {
          "id": "string",
          "status": "requested",
          "reason": "issue",
          "providerKey": "string",
          "challengeType": "string",
          "requestedAt": "string",
          "issuedAt": "string",
          "expiresAt": "string",
          "failedAt": "string",
          "errorCode": "string",
          "failurePhase": "string",
          "failureMessage": "string",
          "retriable": true,
          "retryAfter": "string"
        }
      ],
      "createdAt": "string"
    }
  ]
}
GET/certificates/{certificateId}

Reads safe certificate metadata and attempt history. Public docs: /docs/access/tls/certificates/#certificate-readiness

Path Parameters

certificateId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/certificates/string"
{
  "id": "string",
  "domainBindingId": "string",
  "domainName": "string",
  "status": "pending",
  "source": "managed",
  "providerKey": "string",
  "challengeType": "string",
  "issuedAt": "string",
  "expiresAt": "string",
  "fingerprint": "string",
  "notBefore": "string",
  "issuer": "string",
  "keyAlgorithm": "string",
  "subjectAlternativeNames": [
    "string"
  ],
  "latestAttempt": {
    "id": "string",
    "status": "requested",
    "reason": "issue",
    "providerKey": "string",
    "challengeType": "string",
    "requestedAt": "string",
    "issuedAt": "string",
    "expiresAt": "string",
    "failedAt": "string",
    "errorCode": "string",
    "failurePhase": "string",
    "failureMessage": "string",
    "retriable": true,
    "retryAfter": "string"
  },
  "attempts": [
    {
      "id": "string",
      "status": "requested",
      "reason": "issue",
      "providerKey": "string",
      "challengeType": "string",
      "requestedAt": "string",
      "issuedAt": "string",
      "expiresAt": "string",
      "failedAt": "string",
      "errorCode": "string",
      "failurePhase": "string",
      "failureMessage": "string",
      "retriable": true,
      "retryAfter": "string"
    }
  ],
  "createdAt": "string"
}
DELETE/certificates/{certificateId}

Removes a non-active certificate from visible active lifecycle while retaining audit history. Public docs: /docs/access/tls/certificates/#certificate-readiness

Path Parameters

certificateId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/certificates/string" \  -H "Content-Type: application/json" \  -d '{    "confirmation": {      "certificateId": "string"    }  }'
{
  "certificateId": "string"
}
POST/certificates/issue-or-renew

Requests certificate issuance or renewal for a domain binding. Public docs: /docs/access/tls/certificates/#certificate-readiness

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/certificates/issue-or-renew" \  -H "Content-Type: application/json" \  -d '{    "domainBindingId": "string"  }'
{
  "certificateId": "string",
  "attemptId": "string"
}
POST/certificates/{certificateId}/retries

Creates a new retry attempt for a retryable provider-issued certificate failure. Public docs: /docs/access/tls/certificates/#certificate-readiness

Path Parameters

certificateId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/certificates/string/retries" \  -H "Content-Type: application/json" \  -d '{}'
{
  "certificateId": "string",
  "attemptId": "string"
}
POST/certificates/{certificateId}/revoke

Stops Appaloft from using a certificate for managed TLS. Public docs: /docs/access/tls/certificates/#certificate-readiness

Path Parameters

certificateId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/certificates/string/revoke" \  -H "Content-Type: application/json" \  -d '{}'
{
  "certificateId": "string"
}
GET/deployments/count

Query Parameters

projectId?string
resourceId?string
includeArchived?boolean
Defaultfalse
status?string
Value in"created" | "planning" | "planned" | "running" | "cancel-requested" | "succeeded" | "failed" | "canceled" | "rolled-back"
statuses?array<>

Response Body

application/json

curl -X GET "https://example.com/deployments/count"
{
  "count": 0
}
GET/deployments

Query Parameters

projectId?string
resourceId?string
includeArchived?boolean
Defaultfalse
limit?integer
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/deployments"
{
  "items": [
    {
      "id": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "serverId": "string",
      "destinationId": "string",
      "status": "created",
      "triggerKind": "create",
      "sourceDeploymentId": "string",
      "rollbackCandidateDeploymentId": "string",
      "sourceCommitSha": "string",
      "runtimePlan": {
        "id": "string",
        "source": {
          "kind": "local-folder",
          "locator": "string",
          "displayName": "string",
          "integrationKey": "string",
          "inspection": {
            "runtimeFamily": "custom",
            "framework": "actix-web",
            "packageManager": "bun",
            "applicationShape": "static",
            "runtimeVersion": "string",
            "projectName": "string",
            "detectedFiles": [
              "angular-json"
            ],
            "detectedScripts": [
              "build"
            ],
            "dockerfilePath": "string",
            "composeFilePath": "string",
            "jarPath": "string"
          },
          "metadata": {
            "property1": "string",
            "property2": "string"
          }
        },
        "buildStrategy": "dockerfile",
        "packagingMode": "split-deploy",
        "runtimeArtifact": {
          "kind": "image",
          "intent": "build-image",
          "image": "string",
          "composeFile": "string",
          "metadata": {
            "property1": "string",
            "property2": "string"
          }
        },
        "execution": {
          "kind": "docker-container",
          "workingDirectory": "string",
          "installCommand": "string",
          "buildCommand": "string",
          "startCommand": "string",
          "healthCheckPath": "string",
          "healthCheck": {
            "enabled": true,
            "type": "http",
            "intervalSeconds": 1,
            "timeoutSeconds": 1,
            "retries": 1,
            "startPeriodSeconds": 0,
            "http": {
              "method": "GET",
              "scheme": "http",
              "host": "string",
              "port": 1,
              "path": "string",
              "expectedStatusCode": 100,
              "expectedResponseText": "string"
            }
          },
          "port": 1,
          "image": "string",
          "dockerfilePath": "string",
          "composeFile": "string",
          "accessRoutes": [
            {
              "proxyKind": "none",
              "domains": [
                "string"
              ],
              "pathPrefix": "string",
              "tlsMode": "auto",
              "targetPort": 1
            }
          ],
          "verificationSteps": [
            {
              "kind": "internal-http",
              "label": "string"
            }
          ],
          "metadata": {
            "property1": "string",
            "property2": "string"
          }
        },
        "target": {
          "kind": "single-server",
          "providerKey": "string",
          "serverIds": [
            "string"
          ],
          "metadata": {
            "property1": "string",
            "property2": "string"
          }
        },
        "detectSummary": "string",
        "steps": [
          "string"
        ],
        "generatedAt": "string"
      },
      "environmentSnapshot": {
        "id": "string",
        "environmentId": "string",
        "createdAt": "string",
        "precedence": [
          "string"
        ],
        "variables": [
          {
            "key": "string",
            "value": "string",
            "scope": "string",
            "exposure": "build-time",
            "isSecret": true,
            "kind": "string"
          }
        ]
      },
      "dependencyBindingReferences": [
        {
          "bindingId": "string",
          "dependencyResourceId": "string",
          "kind": "postgres",
          "targetName": "string",
          "scope": "environment",
          "injectionMode": "env",
          "snapshotReadiness": {
            "status": "ready",
            "reason": "string"
          }
        }
      ],
      "logs": [
        {
          "timestamp": "string",
          "source": "appaloft",
          "phase": "detect",
          "level": "debug",
          "message": "string",
          "masked": true
        }
      ],
      "logCount": 0,
      "createdAt": "string",
      "startedAt": "string",
      "finishedAt": "string",
      "archivedAt": "string",
      "rollbackOfDeploymentId": "string"
    }
  ]
}
POST/deployments

Creates a deployment from an explicit project, server, environment, and resource context. Public docs: /docs/deploy/sources/#deployment-source

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "serverId": "string",    "environmentId": "string",    "resourceId": "string"  }'
{
  "id": "string"
}
POST/deployments/cleanup-preview

Cleans preview-scoped runtime, route, and source-link state by source fingerprint. Public docs: /docs/deploy/recovery/#deployment-preview-cleanup

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/cleanup-preview" \  -H "Content-Type: application/json" \  -d '{    "sourceFingerprint": "string"  }'
{
  "sourceFingerprint": "string",
  "status": "cleaned",
  "cleanedRuntime": true,
  "cleanedArtifacts": true,
  "removedServerAppliedRoute": true,
  "removedSourceLink": true,
  "removedDependencyBindings": 0,
  "deletedDependencyResources": 0,
  "projectId": "string",
  "environmentId": "string",
  "resourceId": "string",
  "serverId": "string",
  "destinationId": "string",
  "deploymentId": "string"
}
POST/deployments/{deploymentId}/retry

Reads retry, redeploy, cancel, rollback, and rollback candidate readiness for one deployment. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

deploymentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/string/retry" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/resources/{resourceId}/redeploy

Reads retry, redeploy, cancel, rollback, and rollback candidate readiness for one deployment. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

resourceId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/resources/string/redeploy" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string"
}
POST/deployments/{deploymentId}/rollback

Reads retry, redeploy, cancel, rollback, and rollback candidate readiness for one deployment. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

deploymentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/string/rollback" \  -H "Content-Type: application/json" \  -d '{    "rollbackCandidateDeploymentId": "string"  }'
{
  "id": "string"
}
POST/deployments/{deploymentId}/cancel

Cancels an active deployment attempt after explicit deployment id confirmation. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

deploymentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/string/cancel" \  -H "Content-Type: application/json" \  -d '{    "confirm": "string"  }'
{
  "id": "string",
  "status": "canceled",
  "canceledAt": "string"
}
POST/deployments/{deploymentId}/archive

Archives a terminal deployment attempt without deleting logs, events, runtime artifacts, or retained operator evidence. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

deploymentId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/string/archive" \  -H "Content-Type: application/json" \  -d '{    "confirm": "string"  }'
{
  "id": "string",
  "archivedAt": "string"
}
POST/deployments/prune

Dry-runs or prunes archived terminal deployment attempts when no retained references guard them. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "deployments.prune/v1",
  "before": "string",
  "deploymentId": "string",
  "resourceId": "string",
  "serverId": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "guardedCount": 0,
  "affectedDeploymentIds": [
    "string"
  ],
  "guardedDeploymentIds": [
    "string"
  ],
  "prunedAt": "string"
}
GET/deployments/plan

Previews detected deployment evidence and the execution plan without creating or running a deployment. Public docs: /docs/deploy/lifecycle/#deployment-plan-preview

Query Parameters

projectId*string
Length1 <= length
environmentId*string
Length1 <= length
resourceId*string
Length1 <= length
serverId*string
Length1 <= length
destinationId?string
Length1 <= length
includeAccessPlan?boolean|string|string
includeCommandSpecs?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/deployments/plan?projectId=string&environmentId=string&resourceId=string&serverId=string"
{
  "schemaVersion": "deployments.plan/v1",
  "context": {
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "serverId": "string",
    "destinationId": "string",
    "projectName": "string",
    "environmentName": "string",
    "resourceName": "string",
    "serverName": "string"
  },
  "readiness": {
    "status": "ready",
    "ready": true,
    "reasonCodes": [
      "resource-source-missing"
    ]
  },
  "source": {
    "kind": "local-folder",
    "displayName": "string",
    "locator": "string",
    "runtimeFamily": "string",
    "framework": "string",
    "packageManager": "string",
    "applicationShape": "string",
    "runtimeVersion": "string",
    "projectName": "string",
    "detectedFiles": [
      "string"
    ],
    "detectedScripts": [
      "string"
    ],
    "dockerfilePath": "string",
    "composeFilePath": "string",
    "jarPath": "string",
    "reasoning": [
      "string"
    ]
  },
  "planner": {
    "plannerKey": "string",
    "supportTier": "first-class",
    "buildStrategy": "dockerfile",
    "packagingMode": "split-deploy",
    "targetKind": "single-server",
    "targetProviderKey": "string"
  },
  "buildpack": {
    "status": "selected",
    "supportTier": "buildpack-accelerated",
    "evidence": {
      "platformFiles": [
        "string"
      ],
      "languageFamilies": [
        "string"
      ],
      "frameworkHints": [
        "string"
      ],
      "builderEvidence": [
        "string"
      ],
      "detectedBuildpacks": [
        {
          "id": "string",
          "version": "string"
        }
      ]
    },
    "builderPolicy": {
      "defaultBuilder": "string",
      "requestedBuilder": "string",
      "override": "none",
      "blockedBuilders": [
        "string"
      ]
    },
    "artifactIntent": "build-image",
    "limitations": [
      {
        "code": "string",
        "message": "string",
        "fixPath": "string"
      }
    ]
  },
  "artifact": {
    "kind": "dockerfile-image",
    "runtimeArtifactKind": "image",
    "runtimeArtifactIntent": "build-image",
    "image": "string",
    "composeFile": "string",
    "metadata": {
      "property1": "string",
      "property2": "string"
    }
  },
  "commands": [
    {
      "kind": "install",
      "command": "string",
      "source": "resource-runtime-profile"
    }
  ],
  "network": {
    "internalPort": 1,
    "upstreamProtocol": "http",
    "exposureMode": "none",
    "hostPort": 1,
    "targetServiceName": "string"
  },
  "health": {
    "enabled": true,
    "kind": "http",
    "path": "string",
    "port": 1
  },
  "access": {
    "routeSource": "string",
    "hostname": "string",
    "scheme": "http",
    "routeCount": 0,
    "routeGroupCount": 0
  },
  "dependencyBindings": {
    "status": "ready",
    "references": [
      {
        "bindingId": "string",
        "dependencyResourceId": "string",
        "kind": "postgres",
        "targetName": "string",
        "scope": "environment",
        "injectionMode": "env",
        "snapshotReadiness": {
          "status": "ready",
          "reason": "string"
        }
      }
    ],
    "runtimeInjection": {
      "status": "ready",
      "reason": "string"
    }
  },
  "warnings": [
    {
      "code": "resource-source-missing",
      "reasonCode": "resource-source-missing",
      "category": "blocked",
      "phase": "string",
      "message": "string",
      "recommendation": "string",
      "evidence": [
        {
          "kind": "string",
          "label": "string",
          "value": "string",
          "source": "string"
        }
      ],
      "fixPath": [
        {
          "kind": "query",
          "targetOperation": "string",
          "label": "string",
          "profileField": "string",
          "docsAnchor": "string",
          "safeByDefault": true
        }
      ],
      "overridePath": [
        {
          "kind": "query",
          "targetOperation": "string",
          "label": "string",
          "profileField": "string",
          "docsAnchor": "string",
          "safeByDefault": true
        }
      ],
      "affectedProfileField": "string",
      "relatedEntityId": "string",
      "relatedEntityType": "string"
    }
  ],
  "unsupportedReasons": [
    {
      "code": "resource-source-missing",
      "reasonCode": "resource-source-missing",
      "category": "blocked",
      "phase": "string",
      "message": "string",
      "recommendation": "string",
      "evidence": [
        {
          "kind": "string",
          "label": "string",
          "value": "string",
          "source": "string"
        }
      ],
      "fixPath": [
        {
          "kind": "query",
          "targetOperation": "string",
          "label": "string",
          "profileField": "string",
          "docsAnchor": "string",
          "safeByDefault": true
        }
      ],
      "overridePath": [
        {
          "kind": "query",
          "targetOperation": "string",
          "label": "string",
          "profileField": "string",
          "docsAnchor": "string",
          "safeByDefault": true
        }
      ],
      "affectedProfileField": "string",
      "relatedEntityId": "string",
      "relatedEntityType": "string"
    }
  ],
  "nextActions": [
    {
      "kind": "query",
      "targetOperation": "string",
      "label": "string",
      "safeByDefault": true,
      "blockedReasonCode": "resource-source-missing"
    }
  ],
  "generatedAt": "string"
}
GET/deployments/{deploymentId}

Path Parameters

deploymentId*string
Length1 <= length

Query Parameters

includeTimeline?boolean|string|string
includeSnapshot?boolean|string|string
includeRelatedContext?boolean|string|string
includeLatestFailure?boolean|string|string
includeRecoverySummary?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/deployments/string"
{
  "schemaVersion": "deployments.show/v1",
  "deployment": {
    "id": "string",
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "serverId": "string",
    "destinationId": "string",
    "status": "created",
    "triggerKind": "create",
    "sourceDeploymentId": "string",
    "rollbackCandidateDeploymentId": "string",
    "sourceCommitSha": "string",
    "runtimePlan": {
      "id": "string",
      "source": {
        "kind": "local-folder",
        "locator": "string",
        "displayName": "string",
        "integrationKey": "string",
        "inspection": {
          "runtimeFamily": "custom",
          "framework": "actix-web",
          "packageManager": "bun",
          "applicationShape": "static",
          "runtimeVersion": "string",
          "projectName": "string",
          "detectedFiles": [
            "angular-json"
          ],
          "detectedScripts": [
            "build"
          ],
          "dockerfilePath": "string",
          "composeFilePath": "string",
          "jarPath": "string"
        },
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "buildStrategy": "dockerfile",
      "packagingMode": "split-deploy",
      "runtimeArtifact": {
        "kind": "image",
        "intent": "build-image",
        "image": "string",
        "composeFile": "string",
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "execution": {
        "kind": "docker-container",
        "workingDirectory": "string",
        "installCommand": "string",
        "buildCommand": "string",
        "startCommand": "string",
        "healthCheckPath": "string",
        "healthCheck": {
          "enabled": true,
          "type": "http",
          "intervalSeconds": 1,
          "timeoutSeconds": 1,
          "retries": 1,
          "startPeriodSeconds": 0,
          "http": {
            "method": "GET",
            "scheme": "http",
            "host": "string",
            "port": 1,
            "path": "string",
            "expectedStatusCode": 100,
            "expectedResponseText": "string"
          }
        },
        "port": 1,
        "image": "string",
        "dockerfilePath": "string",
        "composeFile": "string",
        "accessRoutes": [
          {
            "proxyKind": "none",
            "domains": [
              "string"
            ],
            "pathPrefix": "string",
            "tlsMode": "auto",
            "targetPort": 1
          }
        ],
        "verificationSteps": [
          {
            "kind": "internal-http",
            "label": "string"
          }
        ],
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "target": {
        "kind": "single-server",
        "providerKey": "string",
        "serverIds": [
          "string"
        ],
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "detectSummary": "string",
      "steps": [
        "string"
      ],
      "generatedAt": "string"
    },
    "environmentSnapshot": {
      "id": "string",
      "environmentId": "string",
      "createdAt": "string",
      "precedence": [
        "string"
      ],
      "variables": [
        {
          "key": "string",
          "value": "string",
          "scope": "string",
          "exposure": "build-time",
          "isSecret": true,
          "kind": "string"
        }
      ]
    },
    "dependencyBindingReferences": [
      {
        "bindingId": "string",
        "dependencyResourceId": "string",
        "kind": "postgres",
        "targetName": "string",
        "scope": "environment",
        "injectionMode": "env",
        "snapshotReadiness": {
          "status": "ready",
          "reason": "string"
        }
      }
    ],
    "logCount": 0,
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "archivedAt": "string",
    "rollbackOfDeploymentId": "string"
  },
  "status": {
    "current": "created",
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "rollbackOfDeploymentId": "string"
  },
  "relatedContext": {
    "project": {
      "id": "string",
      "name": "string",
      "slug": "string"
    },
    "environment": {
      "id": "string",
      "name": "string",
      "kind": "local"
    },
    "resource": {
      "id": "string",
      "name": "string",
      "slug": "string",
      "kind": "application"
    },
    "server": {
      "id": "string",
      "name": "string",
      "host": "string",
      "port": 0,
      "providerKey": "string"
    },
    "destination": {
      "id": "string"
    }
  },
  "snapshot": {
    "runtimePlan": {
      "id": "string",
      "source": {
        "kind": "local-folder",
        "locator": "string",
        "displayName": "string",
        "integrationKey": "string",
        "inspection": {
          "runtimeFamily": "custom",
          "framework": "actix-web",
          "packageManager": "bun",
          "applicationShape": "static",
          "runtimeVersion": "string",
          "projectName": "string",
          "detectedFiles": [
            "angular-json"
          ],
          "detectedScripts": [
            "build"
          ],
          "dockerfilePath": "string",
          "composeFilePath": "string",
          "jarPath": "string"
        },
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "buildStrategy": "dockerfile",
      "packagingMode": "split-deploy",
      "runtimeArtifact": {
        "kind": "image",
        "intent": "build-image",
        "image": "string",
        "composeFile": "string",
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "execution": {
        "kind": "docker-container",
        "workingDirectory": "string",
        "installCommand": "string",
        "buildCommand": "string",
        "startCommand": "string",
        "healthCheckPath": "string",
        "healthCheck": {
          "enabled": true,
          "type": "http",
          "intervalSeconds": 1,
          "timeoutSeconds": 1,
          "retries": 1,
          "startPeriodSeconds": 0,
          "http": {
            "method": "GET",
            "scheme": "http",
            "host": "string",
            "port": 1,
            "path": "string",
            "expectedStatusCode": 100,
            "expectedResponseText": "string"
          }
        },
        "port": 1,
        "image": "string",
        "dockerfilePath": "string",
        "composeFile": "string",
        "accessRoutes": [
          {
            "proxyKind": "none",
            "domains": [
              "string"
            ],
            "pathPrefix": "string",
            "tlsMode": "auto",
            "targetPort": 1
          }
        ],
        "verificationSteps": [
          {
            "kind": "internal-http",
            "label": "string"
          }
        ],
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "target": {
        "kind": "single-server",
        "providerKey": "string",
        "serverIds": [
          "string"
        ],
        "metadata": {
          "property1": "string",
          "property2": "string"
        }
      },
      "detectSummary": "string",
      "steps": [
        "string"
      ],
      "generatedAt": "string"
    },
    "environmentSnapshot": {
      "id": "string",
      "environmentId": "string",
      "createdAt": "string",
      "precedence": [
        "string"
      ],
      "variables": [
        {
          "key": "string",
          "value": "string",
          "scope": "string",
          "exposure": "build-time",
          "isSecret": true,
          "kind": "string"
        }
      ]
    },
    "dependencyBindings": {
      "status": "ready",
      "references": [
        {
          "bindingId": "string",
          "dependencyResourceId": "string",
          "kind": "postgres",
          "targetName": "string",
          "scope": "environment",
          "injectionMode": "env",
          "snapshotReadiness": {
            "status": "ready",
            "reason": "string"
          }
        }
      ],
      "runtimeInjection": {
        "status": "ready",
        "reason": "string"
      }
    }
  },
  "timeline": {
    "createdAt": "string",
    "startedAt": "string",
    "finishedAt": "string",
    "logCount": 0
  },
  "latestFailure": {
    "timestamp": "string",
    "source": "appaloft",
    "phase": "detect",
    "level": "debug",
    "message": "string"
  },
  "recoverySummary": {
    "source": "deployments.recovery-readiness",
    "retryable": true,
    "redeployable": true,
    "rollbackReady": true,
    "rollbackCandidateCount": 0,
    "blockedReasonCodes": [
      "string"
    ]
  },
  "nextActions": [
    "logs"
  ],
  "sectionErrors": [
    {
      "section": "related-context",
      "code": "string",
      "category": "string",
      "phase": "string",
      "retriable": true,
      "relatedEntityId": "string",
      "relatedState": "string"
    }
  ],
  "generatedAt": "string"
}
GET/deployments/{deploymentId}/recovery-readiness

Reads retry, redeploy, cancel, rollback, and rollback candidate readiness for one deployment. Public docs: /docs/deploy/recovery/#deployment-recovery-readiness

Path Parameters

deploymentId*string
Length1 <= length

Query Parameters

resourceId?string
Length1 <= length
includeCandidates?boolean|string|string
maxCandidates?|string

Response Body

application/json

curl -X GET "https://example.com/deployments/string/recovery-readiness"
{
  "schemaVersion": "deployments.recovery-readiness/v1",
  "deploymentId": "string",
  "resourceId": "string",
  "generatedAt": "string",
  "stateVersion": "string",
  "recoverable": true,
  "retryable": true,
  "redeployable": true,
  "rollbackReady": true,
  "rollbackCandidateCount": 0,
  "retry": {
    "allowed": true,
    "commandActive": true,
    "reasons": [
      {
        "code": "attempt-not-terminal",
        "category": "allowed",
        "phase": "string",
        "relatedDeploymentId": "string",
        "relatedEntityId": "string",
        "relatedEntityType": "string",
        "retriable": true,
        "recommendation": "string"
      }
    ],
    "targetOperation": "deployments.retry"
  },
  "redeploy": {
    "allowed": true,
    "commandActive": true,
    "reasons": [
      {
        "code": "attempt-not-terminal",
        "category": "allowed",
        "phase": "string",
        "relatedDeploymentId": "string",
        "relatedEntityId": "string",
        "relatedEntityType": "string",
        "retriable": true,
        "recommendation": "string"
      }
    ],
    "targetOperation": "deployments.retry"
  },
  "rollback": {
    "allowed": true,
    "commandActive": true,
    "reasons": [
      {
        "code": "attempt-not-terminal",
        "category": "allowed",
        "phase": "string",
        "relatedDeploymentId": "string",
        "relatedEntityId": "string",
        "relatedEntityType": "string",
        "retriable": true,
        "recommendation": "string"
      }
    ],
    "candidates": [
      {
        "deploymentId": "string",
        "finishedAt": "string",
        "status": "succeeded",
        "sourceSummary": "string",
        "artifactSummary": "string",
        "environmentSnapshotId": "string",
        "runtimeTargetSummary": "string",
        "rollbackReady": true,
        "reasons": [
          {
            "code": "attempt-not-terminal",
            "category": "allowed",
            "phase": "string",
            "relatedDeploymentId": "string",
            "relatedEntityId": "string",
            "relatedEntityType": "string",
            "retriable": true,
            "recommendation": "string"
          }
        ]
      }
    ],
    "recommendedCandidateId": "string"
  },
  "recommendedActions": [
    {
      "kind": "query",
      "targetOperation": "deployments.show",
      "label": "string",
      "safeByDefault": true,
      "blockedReasonCode": "attempt-not-terminal",
      "commandActive": true
    }
  ]
}
POST/deployments/stream

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/stream" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "serverId": "string",    "environmentId": "string",    "resourceId": "string"  }'
null
GET/deployments/{deploymentId}/logs

Reads deployment logs. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Path Parameters

deploymentId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/deployments/string/logs"
{
  "deploymentId": "string",
  "logs": [
    {
      "timestamp": "string",
      "source": "appaloft",
      "phase": "detect",
      "level": "debug",
      "message": "string",
      "masked": true
    }
  ]
}
POST/deployments/logs/prune

Dry-runs or prunes old embedded deployment log entries without deleting deployment rows. Public docs: /docs/observe/logs-health/#observe-runtime-logs

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/deployments/logs/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "deployments.logs.prune/v1",
  "before": "string",
  "deploymentId": "string",
  "resourceId": "string",
  "serverId": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "affectedDeploymentCount": 0,
  "prunedAt": "string"
}
GET/deployments/{deploymentId}/events

Path Parameters

deploymentId*string
Length1 <= length

Query Parameters

cursor?string
Length1 <= length
historyLimit?integer
Default100
Range0 <= value <= 200
includeHistory?boolean|string|string
follow?boolean|string|string
untilTerminal?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/deployments/string/events"
{
  "deploymentId": "string",
  "envelopes": [
    {
      "schemaVersion": "deployments.stream-events/v1",
      "kind": "event",
      "event": {
        "deploymentId": "string",
        "sequence": 1,
        "cursor": "string",
        "emittedAt": "string",
        "source": "domain-event",
        "eventType": "deployment-requested",
        "phase": "detect",
        "status": "string",
        "retriable": true,
        "summary": "string"
      }
    }
  ]
}
GET/deployments/{deploymentId}/events/stream

Path Parameters

deploymentId*string
Length1 <= length

Query Parameters

cursor?string
Length1 <= length
historyLimit?integer
Default100
Range0 <= value <= 200
includeHistory?boolean|string|string
follow?boolean|string|string
untilTerminal?boolean|string|string

Response Body

application/json

curl -X GET "https://example.com/deployments/string/events/stream"
null
GET/operator-work

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Query Parameters

kind?string
Value in"deployment" | "proxy-bootstrap" | "certificate" | "remote-state" | "route-realization" | "runtime-maintenance" | "system"
status?string
Value in"pending" | "running" | "retry-scheduled" | "succeeded" | "failed" | "canceled" | "dead-lettered" | "unknown"
resourceId?string
serverId?string
deploymentId?string
limit?|

Response Body

application/json

curl -X GET "https://example.com/operator-work"
{
  "schemaVersion": "operator-work.list/v1",
  "items": [
    {
      "id": "string",
      "kind": "deployment",
      "status": "pending",
      "operationKey": "string",
      "phase": "string",
      "step": "string",
      "projectId": "string",
      "resourceId": "string",
      "deploymentId": "string",
      "serverId": "string",
      "domainBindingId": "string",
      "certificateId": "string",
      "startedAt": "string",
      "updatedAt": "string",
      "finishedAt": "string",
      "errorCode": "string",
      "errorCategory": "string",
      "retriable": true,
      "nextActions": [
        "diagnostic"
      ],
      "safeDetails": {
        "property1": "string",
        "property2": "string"
      }
    }
  ],
  "generatedAt": "string"
}
GET/operator-work/{workId}

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Path Parameters

workId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/operator-work/string"
{
  "schemaVersion": "operator-work.show/v1",
  "item": {
    "id": "string",
    "kind": "deployment",
    "status": "pending",
    "operationKey": "string",
    "phase": "string",
    "step": "string",
    "projectId": "string",
    "resourceId": "string",
    "deploymentId": "string",
    "serverId": "string",
    "domainBindingId": "string",
    "certificateId": "string",
    "startedAt": "string",
    "updatedAt": "string",
    "finishedAt": "string",
    "errorCode": "string",
    "errorCategory": "string",
    "retriable": true,
    "nextActions": [
      "diagnostic"
    ],
    "safeDetails": {
      "property1": "string",
      "property2": "string"
    }
  },
  "generatedAt": "string"
}
POST/operator-work/{workId}/mark-recovered

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Path Parameters

workId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/operator-work/string/mark-recovered" \  -H "Content-Type: application/json" \  -d '{}'
{
  "workId": "string",
  "status": "succeeded",
  "recoveredAt": "string"
}
POST/operator-work/{workId}/dead-letter

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Path Parameters

workId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/operator-work/string/dead-letter" \  -H "Content-Type: application/json" \  -d '{    "reason": "string"  }'
{
  "workId": "string",
  "status": "dead-lettered",
  "deadLetteredAt": "string"
}
POST/operator-work/{workId}/cancel

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Path Parameters

workId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/operator-work/string/cancel" \  -H "Content-Type: application/json" \  -d '{    "reason": "string"  }'
{
  "workId": "string",
  "status": "canceled",
  "canceledAt": "string"
}
POST/operator-work/{workId}/retry

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Path Parameters

workId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/operator-work/string/retry" \  -H "Content-Type: application/json" \  -d '{}'
{
  "workId": "string",
  "status": "pending",
  "retryOfWorkId": "string",
  "retriedAt": "string"
}
POST/operator-work/prune

Reads background work, failed attempts, and diagnostic next actions without recovery mutation. Public docs: /docs/reference/errors-statuses/#operator-work-ledger

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/operator-work/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "prunedCount": 0,
  "matchedCount": 0,
  "dryRun": true,
  "before": "string",
  "statuses": [
    "succeeded"
  ],
  "countsByStatus": {
    "succeeded": 0,
    "failed": 0,
    "canceled": 0,
    "dead-lettered": 0
  },
  "prunedAt": "string"
}
GET/source-events

Lists safe source event deliveries for a project or resource. Public docs: /docs/deploy/sources/#source-auto-deploy-dedupe

Query Parameters

projectId?string
Length1 <= length
resourceId?string
Length1 <= length
status?string
Value in"accepted" | "deduped" | "ignored" | "blocked" | "dispatched" | "failed"
sourceKind?string
Value in"github" | "gitlab" | "generic-signed"
limit?integer
Range0 < value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/source-events"
{
  "items": [
    {
      "sourceEventId": "string",
      "projectId": "string",
      "resourceIds": [
        "string"
      ],
      "sourceKind": "github",
      "eventKind": "push",
      "ref": "string",
      "revision": "string",
      "status": "accepted",
      "dedupeStatus": "new",
      "ignoredReasons": [
        "no-matching-policy"
      ],
      "createdDeploymentIds": [
        "string"
      ],
      "receivedAt": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
GET/source-events/{sourceEventId}

Reads one safe source event delivery with dedupe, policy, and dispatch details. Public docs: /docs/deploy/sources/#source-auto-deploy-ignored-events

Path Parameters

sourceEventId*string
Length1 <= length

Query Parameters

projectId?string
Length1 <= length
resourceId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/source-events/string"
{
  "sourceEventId": "string",
  "projectId": "string",
  "matchedResourceIds": [
    "string"
  ],
  "sourceKind": "github",
  "eventKind": "push",
  "sourceIdentity": {
    "locator": "string",
    "providerRepositoryId": "string",
    "repositoryFullName": "string"
  },
  "ref": "string",
  "revision": "string",
  "verification": {
    "status": "verified",
    "method": "provider-signature",
    "keyVersion": "string"
  },
  "status": "accepted",
  "dedupeOfSourceEventId": "string",
  "policyResults": [
    {
      "resourceId": "string",
      "status": "matched",
      "reason": "ref-not-matched",
      "deploymentId": "string",
      "errorCode": "string"
    }
  ],
  "createdDeploymentIds": [
    "string"
  ],
  "receivedAt": "string"
}
POST/source-events/{sourceEventId}/replay

Replays one retained safe source event delivery through current auto-deploy policy matching. Public docs: /docs/deploy/sources/#source-auto-deploy-recovery

Path Parameters

sourceEventId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/source-events/string/replay" \  -H "Content-Type: application/json" \  -d '{}'
{
  "schemaVersion": "source-events.replay/v1",
  "sourceEventId": "string",
  "status": "accepted",
  "matchedResourceIds": [
    "string"
  ],
  "createdDeploymentIds": [
    "string"
  ],
  "ignoredReasons": [
    "no-matching-policy"
  ],
  "replayedAt": "string"
}
POST/source-events/prune

Dry-runs or prunes retained safe source event deliveries by cutoff and optional scope filters. Public docs: /docs/deploy/sources/#source-auto-deploy-retention

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/source-events/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "source-events.prune/v1",
  "before": "string",
  "projectId": "string",
  "resourceId": "string",
  "status": "accepted",
  "sourceKind": "github",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "countsByStatus": {
    "property1": 0,
    "property2": 0
  },
  "countsBySourceKind": {
    "property1": 0,
    "property2": 0
  },
  "prunedAt": "string"
}
GET/audit-events

Lists safe audit events for one aggregate without exposing raw sensitive payloads. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Query Parameters

aggregateId?string
Length1 <= length
eventType?string
Length1 <= length
limit?integer
Range0 < value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events"
{
  "schemaVersion": "audit-events.list/v1",
  "items": [
    {
      "auditEventId": "string",
      "aggregateId": "string",
      "eventType": "string",
      "createdAt": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
GET/audit-events/export

Exports bounded redacted audit events for one aggregate without mutating retention. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Query Parameters

aggregateId?string
Length1 <= length
eventType?string
Length1 <= length
from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
limit?integer
Default100
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/audit-events/export"
{
  "schemaVersion": "audit-events.export/v1",
  "aggregateId": "string",
  "filters": {
    "eventType": "string",
    "from": "string",
    "to": "string",
    "limit": 0
  },
  "items": [
    {
      "auditEventId": "string",
      "aggregateId": "string",
      "eventType": "string",
      "createdAt": "string",
      "payload": {
        "property1": "string",
        "property2": "string"
      },
      "redactedFields": [
        "string"
      ]
    }
  ],
  "itemCount": 0,
  "truncated": true,
  "generatedAt": "string"
}
GET/audit-events/export-global

Exports bounded redacted audit events across aggregates without mutating retention. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Query Parameters

aggregateId?string
Length1 <= length
eventType?string
Length1 <= length
from*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
to*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
limit?integer
Default100
Range0 < value <= 500

Response Body

application/json

curl -X GET "https://example.com/audit-events/export-global?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z"
{
  "schemaVersion": "audit-events.export-global/v1",
  "filters": {
    "aggregateId": "string",
    "eventType": "string",
    "from": "string",
    "to": "string",
    "limit": 0
  },
  "items": [
    {
      "auditEventId": "string",
      "aggregateId": "string",
      "eventType": "string",
      "createdAt": "string",
      "payload": {
        "property1": "string",
        "property2": "string"
      },
      "redactedFields": [
        "string"
      ]
    }
  ],
  "itemCount": 0,
  "truncated": true,
  "generatedAt": "string"
}
GET/audit-events/{auditEventId}

Reads one safe audit event with redacted payload fields. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Path Parameters

auditEventId*string
Length1 <= length

Query Parameters

aggregateId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events/string"
{
  "schemaVersion": "audit-events.show/v1",
  "event": {
    "auditEventId": "string",
    "aggregateId": "string",
    "eventType": "string",
    "createdAt": "string",
    "payload": {
      "property1": "string",
      "property2": "string"
    },
    "redactedFields": [
      "string"
    ]
  }
}
POST/audit-events/prune

Dry-runs or prunes old retained audit rows while preserving rows matched by active legal holds or retained archives. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/audit-events/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "audit-events.prune/v1",
  "before": "string",
  "aggregateId": "string",
  "eventType": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "heldCount": 0,
  "archiveRetainedCount": 0,
  "countsByEventType": {
    "property1": 0,
    "property2": 0
  },
  "heldCountsByEventType": {
    "property1": 0,
    "property2": 0
  },
  "archiveRetainedCountsByEventType": {
    "property1": 0,
    "property2": 0
  },
  "activeHoldIds": [
    "string"
  ],
  "activeArchiveIds": [
    "string"
  ],
  "prunedAt": "string"
}
GET/audit-events/archives

Lists safe immutable audit archive summaries without archived item payloads. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Query Parameters

aggregateId?string
Length1 <= length
eventType?string
Length1 <= length
from?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
to?string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
limit?integer
Default50
Range0 < value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events/archives"
{
  "schemaVersion": "audit-events.archives.list/v1",
  "items": [
    {
      "archiveId": "string",
      "archiveSchemaVersion": "audit-events.archive/v1",
      "source": {
        "kind": "aggregate",
        "aggregateId": "string",
        "from": "string",
        "to": "string"
      },
      "eventType": "string",
      "reason": "string",
      "itemCount": 0,
      "truncated": true,
      "contentDigest": "string",
      "retainSourceRows": true,
      "createdAt": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
POST/audit-events/archives

Creates an immutable redacted audit archive snapshot for an aggregate or bounded global window. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/audit-events/archives" \  -H "Content-Type: application/json" \  -d '{    "reason": "string"  }'
{
  "schemaVersion": "audit-events.archives.archive/v1",
  "archive": {
    "archiveId": "string",
    "archiveSchemaVersion": "audit-events.archive/v1",
    "source": {
      "kind": "aggregate",
      "aggregateId": "string",
      "from": "string",
      "to": "string"
    },
    "eventType": "string",
    "reason": "string",
    "itemCount": 0,
    "truncated": true,
    "contentDigest": "string",
    "retainSourceRows": true,
    "createdAt": "string"
  }
}
GET/audit-events/archives/{archiveId}

Reads one immutable audit archive with stored redacted items and digest metadata. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Path Parameters

archiveId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events/archives/string"
{
  "schemaVersion": "audit-events.archives.show/v1",
  "archive": {
    "archiveId": "string",
    "archiveSchemaVersion": "audit-events.archive/v1",
    "source": {
      "kind": "aggregate",
      "aggregateId": "string",
      "from": "string",
      "to": "string"
    },
    "eventType": "string",
    "reason": "string",
    "itemCount": 0,
    "truncated": true,
    "contentDigest": "string",
    "retainSourceRows": true,
    "createdAt": "string",
    "items": [
      {
        "auditEventId": "string",
        "aggregateId": "string",
        "eventType": "string",
        "createdAt": "string",
        "payload": {
          "property1": "string",
          "property2": "string"
        },
        "redactedFields": [
          "string"
        ]
      }
    ]
  },
  "generatedAt": "string"
}
POST/audit-events/archives/prune

Dry-runs or deletes retained audit archive records without deleting source audit rows. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/audit-events/archives/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "audit-events.archives.prune/v1",
  "before": "string",
  "aggregateId": "string",
  "eventType": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "countsBySourceKind": {
    "property1": 0,
    "property2": 0
  },
  "countsByEventType": {
    "property1": 0,
    "property2": 0
  },
  "prunedAt": "string"
}
GET/audit-events/legal-holds

Lists safe audit event legal hold metadata without audit payloads. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Query Parameters

status?string
Value in"active" | "released"
aggregateId?string
Length1 <= length
eventType?string
Length1 <= length
limit?integer
Default50
Range0 < value <= 100
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events/legal-holds"
{
  "schemaVersion": "audit-events.legal-holds.list/v1",
  "items": [
    {
      "holdId": "string",
      "status": "active",
      "scope": {
        "kind": "aggregate",
        "aggregateId": "string",
        "from": "string",
        "to": "string"
      },
      "eventType": "string",
      "reason": "string",
      "requestedBy": "string",
      "createdAt": "string",
      "releasedAt": "string",
      "releaseReason": "string",
      "releasedBy": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
POST/audit-events/legal-holds

Records an active legal hold that blocks audit row prune for an aggregate or bounded global window. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/audit-events/legal-holds" \  -H "Content-Type: application/json" \  -d '{    "reason": "string"  }'
{
  "schemaVersion": "audit-events.legal-holds.hold/v1",
  "hold": {
    "holdId": "string",
    "status": "active",
    "scope": {
      "kind": "aggregate",
      "aggregateId": "string",
      "from": "string",
      "to": "string"
    },
    "eventType": "string",
    "reason": "string",
    "requestedBy": "string",
    "createdAt": "string",
    "releasedAt": "string",
    "releaseReason": "string",
    "releasedBy": "string"
  }
}
GET/audit-events/legal-holds/{holdId}

Reads one safe audit event legal hold record without audit payloads. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Path Parameters

holdId*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/audit-events/legal-holds/string"
{
  "schemaVersion": "audit-events.legal-holds.show/v1",
  "hold": {
    "holdId": "string",
    "status": "active",
    "scope": {
      "kind": "aggregate",
      "aggregateId": "string",
      "from": "string",
      "to": "string"
    },
    "eventType": "string",
    "reason": "string",
    "requestedBy": "string",
    "createdAt": "string",
    "releasedAt": "string",
    "releaseReason": "string",
    "releasedBy": "string"
  },
  "generatedAt": "string"
}
POST/audit-events/legal-holds/{holdId}/release

Marks an audit event legal hold released while keeping hold history readable. Public docs: /docs/reference/errors-statuses/#operator-audit-events

Path Parameters

holdId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/audit-events/legal-holds/string/release" \  -H "Content-Type: application/json" \  -d '{    "releaseReason": "string"  }'
{
  "schemaVersion": "audit-events.legal-holds.hold/v1",
  "hold": {
    "holdId": "string",
    "status": "active",
    "scope": {
      "kind": "aggregate",
      "aggregateId": "string",
      "from": "string",
      "to": "string"
    },
    "eventType": "string",
    "reason": "string",
    "requestedBy": "string",
    "createdAt": "string",
    "releasedAt": "string",
    "releaseReason": "string",
    "releasedBy": "string"
  }
}
POST/provider-job-logs/prune

Dry-runs or prunes old retained provider job log rows by cutoff and optional deployment, provider, resource, or server filters. Public docs: /docs/reference/errors-statuses/#operator-provider-job-logs

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/provider-job-logs/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "provider-job-logs.prune/v1",
  "before": "string",
  "deploymentId": "string",
  "providerKey": "string",
  "resourceId": "string",
  "serverId": "string",
  "dryRun": true,
  "matchedCount": 0,
  "prunedCount": 0,
  "countsByProviderKey": {
    "property1": 0,
    "property2": 0
  },
  "prunedAt": "string"
}
POST/domain-events/prune

Dry-runs or prunes old retained domain event stream rows by cutoff and optional event, aggregate, or deployment filters. Public docs: /docs/reference/errors-statuses/#operator-domain-events

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/domain-events/prune" \  -H "Content-Type: application/json" \  -d '{    "before": "2019-08-24T14:15:22Z"  }'
{
  "schemaVersion": "domain-events.prune/v1",
  "before": "string",
  "eventType": "string",
  "aggregateId": "string",
  "aggregateType": "string",
  "deploymentId": "string",
  "limit": 0,
  "dryRun": true,
  "inspectedCount": 0,
  "candidateCount": 0,
  "prunedCount": 0,
  "skippedCount": 0,
  "countsByEventType": {
    "property1": 0,
    "property2": 0
  },
  "skippedCountsByReason": {
    "property1": 0,
    "property2": 0
  },
  "prunedAt": "string"
}
GET/source-links

Lists source fingerprint links for deployment identity diagnostics. Public docs: /docs/deploy/sources/#deployment-source

Query Parameters

projectId?string
Length1 <= length
resourceId?string
Length1 <= length
serverId?string
Length1 <= length
limit?integer
Default50
Range0 < value <= 200

Response Body

application/json

curl -X GET "https://example.com/source-links"
{
  "schemaVersion": "source-links.list/v1",
  "items": [
    {
      "sourceFingerprint": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "serverId": "string",
      "destinationId": "string",
      "updatedAt": "string",
      "reason": "string"
    }
  ]
}
GET/source-links/{sourceFingerprint}

Reads one source fingerprint link for deployment identity diagnostics. Public docs: /docs/deploy/sources/#deployment-source

Path Parameters

sourceFingerprint*string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/source-links/string"
{
  "schemaVersion": "source-links.show/v1",
  "sourceLink": {
    "sourceFingerprint": "string",
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "serverId": "string",
    "destinationId": "string",
    "updatedAt": "string",
    "reason": "string"
  }
}
DELETE/source-links/{sourceFingerprint}

Deletes one source fingerprint link so later config deploys must resolve identity again. Public docs: /docs/deploy/sources/#deployment-source

Path Parameters

sourceFingerprint*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X DELETE "https://example.com/source-links/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "sourceFingerprint": "string",
  "deleted": true
}
POST/source-links/relink

Moves a source fingerprint link to an explicit project, environment, resource, and optional deployment target. Public docs: /docs/deploy/sources/#deployment-source

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/source-links/relink" \  -H "Content-Type: application/json" \  -d '{    "sourceFingerprint": "string",    "projectId": "string",    "environmentId": "string",    "resourceId": "string"  }'
{
  "sourceFingerprint": "string",
  "projectId": "string",
  "environmentId": "string",
  "resourceId": "string",
  "serverId": "string",
  "destinationId": "string"
}
POST/preview-policies

Configures product-grade preview policy for a project or resource scope. Public docs: /docs/deploy/previews/#product-grade-preview-deployments

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/preview-policies" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "project",      "projectId": "string"    }  }'
{
  "id": "string"
}
POST/preview-policies/show

Reads effective product-grade preview policy for a project or resource scope. Public docs: /docs/deploy/previews/#product-grade-preview-deployments

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/preview-policies/show" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "project",      "projectId": "string"    }  }'
{
  "schemaVersion": "preview-policies.show/v1",
  "policy": {
    "id": "string",
    "scope": {
      "kind": "project",
      "projectId": "string"
    },
    "settings": {
      "sameRepositoryPreviews": true,
      "forkPreviews": "disabled",
      "secretBackedPreviews": true,
      "maxActivePreviews": 1,
      "previewTtlHours": 1
    },
    "source": "default",
    "updatedAt": "string"
  },
  "generatedAt": "string"
}
GET/preview-environments

Lists durable preview environments with source, ownership, status, and expiry summaries. Public docs: /docs/deploy/previews/#product-grade-preview-deployments

Query Parameters

projectId?string
Length1 <= length
environmentId?string
Length1 <= length
resourceId?string
Length1 <= length
status?string
Value in"active" | "cleanup-requested"
repositoryFullName?string
Length1 <= length
pullRequestNumber?integer
Range0 < value <= 9007199254740991
limit?|
cursor?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/preview-environments"
{
  "schemaVersion": "preview-environments.list/v1",
  "items": [
    {
      "previewEnvironmentId": "string",
      "projectId": "string",
      "environmentId": "string",
      "resourceId": "string",
      "serverId": "string",
      "destinationId": "string",
      "source": {
        "provider": "github",
        "repositoryFullName": "string",
        "headRepositoryFullName": "string",
        "pullRequestNumber": 1,
        "baseRef": "string",
        "headSha": "string",
        "sourceBindingFingerprint": "string"
      },
      "status": "active",
      "createdAt": "string",
      "updatedAt": "string",
      "expiresAt": "string"
    }
  ],
  "nextCursor": "string",
  "generatedAt": "string"
}
GET/preview-environments/{previewEnvironmentId}

Reads one durable preview environment with safe source, ownership, status, and expiry detail. Public docs: /docs/deploy/previews/#product-grade-preview-deployments

Path Parameters

previewEnvironmentId*string
Length1 <= length

Query Parameters

projectId?string
Length1 <= length
resourceId?string
Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/preview-environments/string"
{
  "schemaVersion": "preview-environments.show/v1",
  "previewEnvironment": {
    "previewEnvironmentId": "string",
    "projectId": "string",
    "environmentId": "string",
    "resourceId": "string",
    "serverId": "string",
    "destinationId": "string",
    "source": {
      "provider": "github",
      "repositoryFullName": "string",
      "headRepositoryFullName": "string",
      "pullRequestNumber": 1,
      "baseRef": "string",
      "headSha": "string",
      "sourceBindingFingerprint": "string"
    },
    "status": "active",
    "createdAt": "string",
    "updatedAt": "string",
    "expiresAt": "string"
  },
  "generatedAt": "string"
}
DELETE/resources/{resourceId}/preview-environments/{previewEnvironmentId}

Requests cleanup for one preview environment while preserving deployment history and audit. Public docs: /docs/deploy/previews/#product-grade-preview-deployments

Path Parameters

resourceId*string
Length1 <= length
previewEnvironmentId*string
Length1 <= length

Response Body

application/json

curl -X DELETE "https://example.com/resources/string/preview-environments/string"
{
  "status": "cleaned",
  "attemptId": "string",
  "previewEnvironmentId": "string",
  "resourceId": "string",
  "sourceBindingFingerprint": "string",
  "previewEnvironmentStatus": "cleanup-requested",
  "cleanedRuntime": true,
  "removedRoute": true,
  "removedSourceLink": true,
  "removedProviderMetadata": true,
  "updatedFeedback": true,
  "errorCode": "string",
  "retryable": true,
  "failurePhase": "string",
  "nextRetryAt": "string"
}
GET/providers

Response Body

application/json

curl -X GET "https://example.com/providers"
{
  "items": [
    {
      "key": "string",
      "title": "string",
      "category": "cloud-provider",
      "capabilities": [
        "string"
      ],
      "capabilityDetails": [
        {
          "key": "string",
          "title": "string",
          "enabled": true,
          "description": "string"
        }
      ],
      "configuration": {
        "status": "configured",
        "diagnostics": [
          {
            "code": "string",
            "severity": "info",
            "message": "string",
            "documentationHref": "string"
          }
        ]
      }
    }
  ]
}
GET/plugins

Response Body

application/json

curl -X GET "https://example.com/plugins"
{
  "items": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "version": "string",
      "kind": "user-extension",
      "capabilities": [
        "string"
      ],
      "capabilityDetails": [
        {
          "key": "string",
          "title": "string",
          "enabled": true,
          "description": "string"
        }
      ],
      "compatible": true,
      "configuration": {
        "status": "configured",
        "diagnostics": [
          {
            "code": "string",
            "severity": "info",
            "message": "string",
            "documentationHref": "string"
          }
        ]
      }
    }
  ]
}
GET/system/doctor

Reads local readiness, provider/plugin diagnostics, and configured maintenance worker activation without starting or ticking workers.

Response Body

application/json

curl -X GET "https://example.com/system/doctor"
{
  "readiness": {
    "status": "ready",
    "checks": {
      "database": true,
      "migrations": true
    },
    "details": {
      "property1": "string",
      "property2": "string"
    }
  },
  "providers": [
    {
      "key": "string",
      "title": "string",
      "category": "cloud-provider",
      "capabilities": [
        "string"
      ],
      "capabilityDetails": [
        {
          "key": "string",
          "title": "string",
          "enabled": true,
          "description": "string"
        }
      ],
      "configuration": {
        "status": "configured",
        "diagnostics": [
          {
            "code": "string",
            "severity": "info",
            "message": "string",
            "documentationHref": "string"
          }
        ]
      }
    }
  ],
  "plugins": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "version": "string",
      "kind": "user-extension",
      "capabilities": [
        "string"
      ],
      "capabilityDetails": [
        {
          "key": "string",
          "title": "string",
          "enabled": true,
          "description": "string"
        }
      ],
      "compatible": true,
      "configuration": {
        "status": "configured",
        "diagnostics": [
          {
            "code": "string",
            "severity": "info",
            "message": "string",
            "documentationHref": "string"
          }
        ]
      }
    }
  ],
  "maintenanceWorkers": [
    {
      "key": "certificate-retry-scheduler",
      "label": "string",
      "enabled": true,
      "activation": "disabled-by-config",
      "safetyMode": "certificate-retry",
      "intervalSeconds": 1,
      "batchSize": 1,
      "defaultRetryDelaySeconds": 1,
      "rawRetentionHours": 1,
      "configurationKeys": [
        "string"
      ],
      "operationKeys": [
        "string"
      ]
    }
  ]
}
GET/integrations

Response Body

application/json

curl -X GET "https://example.com/integrations"
{
  "items": [
    {
      "key": "string",
      "title": "string",
      "capabilities": [
        "string"
      ],
      "defaultConnectionModeKey": "string",
      "connectionModes": [
        {
          "key": "user-oauth",
          "title": "string",
          "audience": "end-user",
          "externalSetup": "none",
          "createsExternalResources": true,
          "secretMaterialRequired": true,
          "description": "string"
        }
      ],
      "setup": {
        "providerApp": {
          "installUrl": "string",
          "callbackUrl": "string",
          "webhookUrl": "string"
        }
      },
      "configuration": {
        "status": "configured",
        "diagnostics": [
          {
            "code": "string",
            "severity": "info",
            "message": "string",
            "documentationHref": "string"
          }
        ]
      }
    }
  ]
}
GET/integrations/github/app-connection

Response Body

application/json

curl -X GET "https://example.com/integrations/github/app-connection"
{
  "accountLogin": "string",
  "accountType": "string",
  "callbackUrl": "string",
  "configurationStatus": "configured",
  "connected": true,
  "installUrl": "string",
  "installationId": "string",
  "repositoryCount": 0,
  "repositoriesSelection": "all",
  "suspendedAt": "string",
  "tenantId": "string",
  "updatedAt": "string",
  "webhookUrl": "string"
}
GET/integrations/github/repositories

Query Parameters

search?string

Response Body

application/json

curl -X GET "https://example.com/integrations/github/repositories"
{
  "items": [
    {
      "id": "string",
      "name": "string",
      "fullName": "string",
      "ownerLogin": "string",
      "description": "string",
      "private": true,
      "defaultBranch": "string",
      "htmlUrl": "string",
      "cloneUrl": "string",
      "updatedAt": "string"
    }
  ]
}
POST/integrations/github/source-events

Response Body

curl -X POST "https://example.com/integrations/github/source-events"
Empty
GET/instance-upgrade/check

Response Body

curl -X GET "https://example.com/instance-upgrade/check"
Empty
POST/instance-upgrade/apply

Response Body

curl -X POST "https://example.com/instance-upgrade/apply"
Empty