Project Registry API: schemas

The request and response bodies of the operations in this API.

BootstrapAnalyzeDto

PropertyTypeRequiredDescription
optionsobjectnoRun configuration options
promptstringyesThe user prompt describing the project or change

BootstrapDecisionDto

PropertyTypeRequiredDescription
existingAssetsExistingAssetsDtoyes
modeone of "fresh", "continue", "evolve", "confirm_fresh"yes
optionsarray of BootstrapOptionDtoyesAvailable bootstrap options
priorRunPriorRunSummaryDtono
promptClassificationPromptClassificationDtoyes
recommendationsarray of stringyesHuman-readable suggestions

BootstrapDecisionDtoDataEnvelope

PropertyTypeRequiredDescription
dataBootstrapDecisionDtoyes

BootstrapOptionDto

PropertyTypeRequiredDescription
defaultbooleanno
descriptionstringyes
keystringyes
labelstringyes

BootstrapProjectDto

PropertyTypeRequiredDescription
optionsobjectno

CreateProjectBindingDto

PropertyTypeRequiredDescription
kindProjectBindingKindyes
labelstringno
targetIdstringyesIdentifier of the upstream target. - KB_SPACE -> KB space slug (validated against knowledge-base-api) - EXTERNAL_PROJECT -> Project id in the same org (validated locally)

CreateProjectDto

PropertyTypeRequiredDescription
descriptionstringno
managedKeystringnoOptional caller-chosen natural key, unique per organisation. When present the create is GET-OR-CREATE on (org, managedKey): the first call creates the project (201, created: true); every later call — a retry, a resumed provisioning, or a concurrent duplicate — returns the SAME project unchanged (200, created: false), whatever name, description or repo it carries. Attributes are changed with PATCH, never by re-posting. A match that is ARCHIVED is refused with 409 PROJECT_MANAGED_KEY_ARCHIVED. Grammar <namespace>:<id>, where the namespace names a domain noun, never a service. A keyed project is SERVICE-MANAGED: it is created by the managing workload, presenting the person's context or with its own token, and the person is NOT seeded as a member or administrator. A person sending a managedKey directly is refused with 403 PROJECT_MANAGED_KEY_WORKLOAD_REQUIRED. Absent: an ordinary create, exactly as before.
namestringyes
repoCreateProjectRepoDtono

CreateProjectRepoDto

PropertyTypeRequiredDescription
defaultBranchstringno
installationIdstringno
providerstringyes
repoFullNamestringyes

CreateProjectResponseDto

PropertyTypeRequiredDescription
connectionsarray of ProjectConnectionResponseDtoyes
createdbooleanyesTrue when this call created the project (HTTP 201). False when a managedKey matched an existing project, which is returned unchanged (HTTP 200). Always true without a managedKey.
createdAtstringyes
createdBystringyes
descriptionstringno
hardDeletablebooleanyesWhether DELETE /projects/:projectId would be accepted — read-only and server-derived. False means a producer owns this project and would recreate it; archive it instead, or retire the source that declares it.
idstringyes
managedByone of "ui", "iac", "seeder", "biome_contributed", "runtime_registered", "system", "deployment" or nullyesProvisioning ownership marker. iac = managed by the declarative control plane; seeder = resolved by a managed-key producer; ui = hand-managed (or adopted from seeder by an edit or an archive); system = platform-shipped; null = unmanaged/legacy.
managedKeystring or nullyesThe caller-chosen natural key <namespace>:<id> the project was created with, unique per organisation; null when it has none.
namestringyes
orgIdstringyes
orgMemberAccessone of "none", "viewer", "editor"yesWhat every member of the organisation holds on this project without a membership seat: none (private), viewer (read) or editor (read and write). New projects are private; an organisation or project administrator changes it with PATCH /projects/:projectId.
reposarray of ProjectRepoResponseDtoyes
settingsProjectSettingsResponseDtono
statusstringyes

CreateProjectResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataCreateProjectResponseDtoyes

CreateVariableDto

PropertyTypeRequiredDescription
descriptionstringnoHuman-readable description
isSecretbooleannoWhether this variable is a secret (encrypted at rest, write-only). Defaults to false.
keystringyesVariable name (uppercase + underscores). Unique within the wallet.
valuestringyesVariable value (plaintext or secret)

CreateWalletDto

PropertyTypeRequiredDescription
descriptionstringnoHuman-readable description shown in the settings UI.
namestringyesWallet name unique within the wallet's (org, project) scope. Lowercase kebab-case.

ExistingAssetsDto

PropertyTypeRequiredDescription
artifactsnumberyes
kbPagesnumberyes

GrantProjectRoleDto

PropertyTypeRequiredDescription
roleProjectRoleyesThe role to add. CLOSED set (ProjectRole) — an unrecognised value is REFUSED at the wire with 400, never stored. Storing one was the defect this closes: role was a bare string, so 'adminn' was accepted, persisted, and then failed the authority check for the lifetime of the row while reading in the UI as a granted role. RevokeProjectRoleDto.role is intentionally NOT closed the same way — see the class doc above before changing either field.
userIdstringyes

ManifestDiffResponseDto

PropertyTypeRequiredDescription
diffarray of stringyesRFC 6902 JSON Patch operations
fromVersionnumberyes
toVersionnumberyes

ManifestDiffResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataManifestDiffResponseDtoyes

ManifestHistoryEntryDto

PropertyTypeRequiredDescription
changePhasestringno
changeReasonstringno
changedBystringyes
createdAtstringyes
diffobjectno
idstringyes
pipelineRunIdstringnoPipeline run that produced this change
snapshotJsonobjectyes
versionnumberyes

ManifestHistoryEntryDtoDataEnvelope

PropertyTypeRequiredDescription
dataManifestHistoryEntryDtoyes

ManifestHistoryEntryDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of ManifestHistoryEntryDtoyes
paginationPaginationMetayes

ManifestResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
idstringyes
lastUpdatedBystringyes
lastUpdatedPhasestringno
manifestobjectyes
projectIdstringyes
schemaVersionstringyes
updatedAtstringyes
versionnumberyes

ManifestResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataManifestResponseDtoyes

ManifestSectionListResponseDto

PropertyTypeRequiredDescription
entriesobjectyesMap of section entry names to their objects

ManifestSectionListResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ManifestSectionListResponseDtoyes

ManifestValidationResponseDto

PropertyTypeRequiredDescription
errorsarray of stringyes
validbooleanyes

ManifestValidationResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataManifestValidationResponseDtoyes

PaginationMeta

PropertyTypeRequiredDescription
hasMorebooleanno
limitnumberno
nextCursorstring or nullno
pagenumberno
previousCursorstring or nullno
totalnumberno
totalPagesnumberno

PatchManifestDto

PropertyTypeRequiredDescription
changeReasonstringnoReason for this change (for audit trail)
patchobjectyesJSON merge-patch object to apply to current manifest

PatchSectionEntryDto

PropertyTypeRequiredDescription
changeReasonstringnoReason for this change (for audit trail)
patchobjectyesJSON merge-patch to apply to section entry

PreferredImageVariantResponseDto

PropertyTypeRequiredDescription
preferredImageVariantSlugstring or nullnoThe workspace-image variant slug preferred for this project. Null means no project-level preference; the resolver cascades to the org default.
projectIdstringyesProject identifier.

PreferredImageVariantResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPreferredImageVariantResponseDtoyes

PriorRunSummaryDto

PropertyTypeRequiredDescription
completedPhasesarray of stringyes
idstringyes
promptstringyes
statusstringyes
stoppedAtPhasestringno

ProblemActionableBy

Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.

Type: one of "user", "org-admin", "platform", "none"

ProblemDetailsDto

RFC 9457 problem document. The declared members are the reserved core; extension members are TOP-LEVEL and OPEN, owned by the refusing plane.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codestringyesSCREAMING_SNAKE_CASE. The machine-branchable refusal, and the value a policy rule, a retry predicate and a UI branch all name.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProblemFieldIssueDto

PropertyTypeRequiredDescription
codestringnoSCREAMING_SNAKE_CASE code of THIS issue, for a frontend i18n key. Present when the issue was minted by a declared problem.
detailstringyesProse for logs and developers. A frontend localises from code + params instead.
paramsmap of string or number or booleannoSafe i18n interpolation values for this issue's code.
pointerstringyesRFC 6901 JSON Pointer into the request body. Root is "/".

ProblemRetry

What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.

Type: one of "transient", "after-change", "never"

ProjectBindingKind

Type: one of "KB_SPACE", "EXTERNAL_PROJECT"

ProjectBindingResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
idstringyes
kindProjectBindingKindyes
labelstringno
projectIdstringyes
targetIdstringyes
updatedAtstringyes

ProjectBindingResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ProjectBindingResponseDtoyes

ProjectBindingResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectBindingResponseDtoyes

ProjectConnectionResponseDto

PropertyTypeRequiredDescription
configobjectno
credentialsPointerstringno
enabledbooleanyes
typestringyes

ProjectDeletionCascadeDto

PropertyTypeRequiredDescription
countnumberyesHow many rows of this class the cascade will remove. Authoritative: these rows are in this service’s database and go in the same statement.
keystringyesStable key for the record class, for clients that group or order.
labelstringyesUser-facing name of the record class, already pluralised for display.

ProjectDeletionImpactDto

PropertyTypeRequiredDescription
archiveAvailablebooleanyesWhether ARCHIVE is available as a reversible alternative right now. False when the project is already archived.
blockedReasonstringnoWhy the delete would be refused. Present if and only if deletable is false.
cascadesarray of ProjectDeletionCascadeDtoyesEvery record class the cascade removes, INCLUDING the ones that are currently empty — a zero is information ("this project has no wallets"), and omitting it would make the list look like the whole story only when it happens to be non-empty.
deletablebooleanyesWhether DELETE would be accepted right now. This is the SAME predicate the delete route enforces, re-evaluated at delete time — a preview is never the authority.
downstreamCleanupSignalledbooleanyesTrue when deleting publishes the platform-wide cascade signal that other services use to remove their own project-keyed records. No count is offered: this service cannot enumerate rows it does not own.
managedByone of "ui", "iac", "seeder", "biome_contributed", "runtime_registered", "system", "deployment" or nullyesWhich producer owns this project’s declaration, or null when a person created it. A project a producer would recreate is refused.
projectIdstringyes
projectNamestringyes
totalRecordsnumberyesSum of cascades[].count, for a one-line summary.

ProjectDeletionImpactDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectDeletionImpactDtoyes

ProjectMembershipResponseDto

PropertyTypeRequiredDescription
createdAtstringyesISO-8601 creation timestamp.
idstringyesMembership row id.
orgIdstringyesOrganization that owns the project.
projectIdstringyesProject the membership grants access to.
rolesarray of stringyesRoles held on this project, sorted and deduped. NOT guaranteed to be a subset of ProjectRole: the write side refuses anything outside that closed set, but the underlying column is unconstrained, so a stored value outside it is returned as-is rather than silently dropped. Only ProjectRole members carry role-management authority.
updatedAtstringyesISO-8601 last-modification timestamp.
userIdstringyesSubject id of the member — the canonical acting subject id (JWT sub).

ProjectMembershipResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ProjectMembershipResponseDtoyes

ProjectMembershipResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectMembershipResponseDtoyes

ProjectRepoResponseDto

PropertyTypeRequiredDescription
defaultBranchstringno
installationIdstringno
providerstringyes
repoFullNamestringyes

ProjectResponseDto

PropertyTypeRequiredDescription
connectionsarray of ProjectConnectionResponseDtoyes
createdAtstringyes
createdBystringyes
descriptionstringno
hardDeletablebooleanyesWhether DELETE /projects/:projectId would be accepted — read-only and server-derived. False means a producer owns this project and would recreate it; archive it instead, or retire the source that declares it.
idstringyes
managedByone of "ui", "iac", "seeder", "biome_contributed", "runtime_registered", "system", "deployment" or nullyesProvisioning ownership marker. iac = managed by the declarative control plane; seeder = resolved by a managed-key producer; ui = hand-managed (or adopted from seeder by an edit or an archive); system = platform-shipped; null = unmanaged/legacy.
managedKeystring or nullyesThe caller-chosen natural key <namespace>:<id> the project was created with, unique per organisation; null when it has none.
namestringyes
orgIdstringyes
orgMemberAccessone of "none", "viewer", "editor"yesWhat every member of the organisation holds on this project without a membership seat: none (private), viewer (read) or editor (read and write). New projects are private; an organisation or project administrator changes it with PATCH /projects/:projectId.
reposarray of ProjectRepoResponseDtoyes
settingsProjectSettingsResponseDtono
statusstringyes

ProjectResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProjectResponseDtoyes

ProjectRole

The role to add. CLOSED set (ProjectRole) — an unrecognised value is REFUSED at the wire with 400, never stored. Storing one was the defect this closes: role was a bare string, so 'adminn' was accepted, persisted, and then failed the authority check for the lifetime of the row while reading in the UI as a granted role.

RevokeProjectRoleDto.role is intentionally NOT closed the same way — see the class doc above before changing either field.

Type: one of "admin", "lead"

ProjectSettingsResponseDto

PropertyTypeRequiredDescription
cloudDetailsobjectnoCloud-specific configuration details
cloudProviderone of "auto", "azure", "aws", "gcp", "self_hosted", "hybrid", "undecided"noTarget cloud provider
outputLanguagestringnoISO 639-1 language code or "auto"
targetBranchstringnoDefault target branch for merges

ProjectSummaryResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
descriptionstringno
hardDeletablebooleanyesWhether DELETE /projects/:projectId would be accepted — read-only and server-derived. False means a producer owns this project and would recreate it; archive it instead, or retire the source that declares it.
idstringyes
managedByone of "ui", "iac", "seeder", "biome_contributed", "runtime_registered", "system", "deployment" or nullyesProvisioning ownership marker. iac = managed by the declarative control plane; seeder = resolved by a managed-key producer; ui = hand-managed (or adopted from seeder by an edit or an archive); system = platform-shipped; null = unmanaged/legacy.
managedKeystring or nullyesThe caller-chosen natural key <namespace>:<id> the project was created with, unique per organisation; null when it has none.
namestringyes
orgIdstringyes
statusstringyes

ProjectSummaryResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of ProjectSummaryResponseDtoyes

PromptClassificationDto

PropertyTypeRequiredDescription
classificationone of "same_scope", "evolution", "new_direction"yes
similaritynumberyesJaccard similarity score 0-1

ProvisionOnboardingRequestDto

PropertyTypeRequiredDescription
alwaysAllowResourceCreationbooleanyesWhen true, persists "Don't ask again before creating platform-managed resources" as the durable org preference. Source of truth lives in OrgOnboardingPreferences; localStorage is best-effort UX state.
orgIdstringyesOrg the wizard is provisioning for. Must match the JWT context.
packagesProviderIdstringnoCatalog provider id for the packages resource (e.g. NPMJS). Must map to category packages. Omit when the project has no packages provider — absent means none, never a default.
projectIdstringyesProject the wizard is provisioning for. Must exist within orgId.
sourceCodeProviderIdstringnoCatalog provider id for the source-code resource (e.g. GITHUB). Must map to category source-code. Omit when the project has no source-code provider — absent means none, never a default.

ProvisionOnboardingResponseDto

PropertyTypeRequiredDescription
orgIdstringyesOrg the wizard provisioned for.
packagesConnectionIdstringnoActive OrgConnection.id for the chosen packages provider. Omitted when none was chosen or the provider is system-shareable (no per-org row).
projectIdstringyesProject the wizard provisioned for.
sourceCodeConnectionIdstringnoActive OrgConnection.id for the chosen source-code provider. Omitted when none was chosen or the provider is system-shareable (no per-org row).

ProvisionOnboardingResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataProvisionOnboardingResponseDtoyes

PutManifestDto

PropertyTypeRequiredDescription
changeReasonstringnoReason for this change (for audit trail)
manifestobjectyesFull manifest JSON object conforming to ProjectManifest schema

PutResourceShareDto

PropertyTypeRequiredDescription
expiresAtstring (date-time)noWhen the share lapses.
levelstringyesThe level to grant — one of the type's share relations.
subjectIdstringyes
subjectKindShareGranteeKindyesA user grantee is bound to that user's current membership of the org (422 when not a member).

ResolveWalletsRequestDto

PropertyTypeRequiredDescription
namesarray of stringyesWallet names to resolve. Must all exist within the project/org scope; missing names fail-fast with WORKFLOW_WALLET_NOT_FOUND.

ResolvedWalletsResponseDto

PropertyTypeRequiredDescription
secretsmap of stringyesSecret variables resolved from the requested wallets, decrypted. Treat as sensitive — consumers must redact in logs.
varsmap of stringyesNon-secret variables resolved from the requested wallets. Project-scoped wallets override org-scoped wallets sharing the same key.
walletKeyMapmap of stringyesProvenance map: variable key → wallet name that contributed the value. Lets the engine/audit show which wallet served each key.

ResolvedWalletsResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataResolvedWalletsResponseDtoyes

ResourceShareDto

PropertyTypeRequiredDescription
expiresAtstring (date-time) or nullyes
grantedBystringyes<kind>:<id> of the principal who granted it.
levelstringyesThe relation the share grants (a level of the type).
membershipActiveboolean or nullyesFor a membership share, whether it is still the user's current membership of the org; false means the user left and the share grants nothing (it can still be removed). Null for every other kind.
refusalCodestring or nullyesThe typed refusal code (tenant_mismatch, subject_unresolvable, ...) when state is refused, else null.
stateShareStateyesWhether the share is in force. refused: the authorization plane refused its facts for good, so it grants nothing; re-put it with a valid subject, or remove it.
subjectIdstringyesFor a membership share, the membership id (one stay of the user in the org).
subjectKindShareSubjectKindyes
userIdstring or nullyesThe user of a membership share; null for every other kind.

ResourceSharesDto

PropertyTypeRequiredDescription
canManagebooleanyesWhether the caller may share or unshare this resource.
expirablebooleanyesWhether a share of this type may carry an expiry; when false an expiry is refused.
levelsarray of stringyesThe levels a share of this type may grant, lowest first. A sharer may grant only a level it holds.
sharesarray of ResourceShareDtoyes

ResourceSharesDtoDataEnvelope

PropertyTypeRequiredDescription
dataResourceSharesDtoyes

RevokeProjectRoleDto

PropertyTypeRequiredDescription
rolestringyesRole to remove from the membership. NOT limited to ProjectRole: the grant side refuses anything outside that closed set, but the stored column is unconstrained, so a value that got in by another route must still be removable here. Removing a role the membership does not hold is a successful no-op, so the call is safe to retry.
userIdstringyes

SetPreferredImageVariantDto

PropertyTypeRequiredDescription
preferredImageVariantSlugstring or nullnoWorkspace-image variant slug to prefer for this project. Set null to clear the preference and let the resolver cascade to the org default.

ShareGranteeKind

A user grantee is bound to that user's current membership of the org (422 when not a member).

Type: one of "user", "agent", "external-subject", "team", "role"

ShareState

Whether the share is in force. refused: the authorization plane refused its facts for good, so it grants nothing; re-put it with a valid subject, or remove it.

Type: one of "active", "refused"

ShareSubjectKind

Type: one of "membership", "agent", "external-subject", "team", "role"

UpdateProjectConnectionDto

PropertyTypeRequiredDescription
configobjectno
credentialsPointerstringno
enabledbooleanyes

UpdateProjectDto

PropertyTypeRequiredDescription
descriptionstring or nullnoOptional project description. Set null to clear the existing description.
namestringnoHuman-readable project name.
orgMemberAccessone of "none", "viewer", "editor"noSet what every member of the organisation holds on this project without a membership seat: none (private), viewer or editor. Requires project administration (xema_admin), unlike the other fields.

UpdateProjectSettingsDto

PropertyTypeRequiredDescription
cloudDetailsobjectnoAdditional cloud-specific configuration details.
cloudProviderone of "auto", "azure", "aws", "gcp", "self_hosted", "hybrid", "undecided"noTarget cloud provider for architecture decisions. "auto" = LLM infers from project context.
outputLanguagestringnoISO 639-1 language code for all pipeline output. "auto" = LLM auto-detects from context.
settingsobjectyes
targetBranchstringnoTarget branch for pipeline merges. Defaults to repository defaultBranch if not set.

UpdateVariableDto

PropertyTypeRequiredDescription
descriptionstringno
valuestringnoNew value (required for secrets, optional for non-secrets)

UpdateWalletDto

PropertyTypeRequiredDescription
descriptionstringno

UpsertSectionEntryDto

PropertyTypeRequiredDescription
changeReasonstringnoReason for this change (for audit trail)
entryobjectyesFull section entry object

ValidateManifestDto

PropertyTypeRequiredDescription
manifestobjectyesManifest JSON to validate without saving

VariableResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
descriptionstring or nullno
idstringyes
isSecretbooleanyes
keystringyes
orgIdstringyes
projectIdstring or nullno
updatedAtstringyes
updatedBystring or nullno
valuestring or nullnoValue (null for secrets — write-only)
walletIdstringyes

VariableResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of VariableResponseDtoyes

VariableResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataVariableResponseDtoyes

WalletEntryDto

PropertyTypeRequiredDescription
isSecretbooleanyes
keystringyes

WalletResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
descriptionstring or nullno
idstringyes
namestringyes
orgIdstringyes
projectIdstring or nullno
updatedAtstringyes
updatedBystring or nullno

WalletResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of WalletResponseDtoyes

WalletResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataWalletResponseDtoyes

WalletWithEntriesResponseDto

PropertyTypeRequiredDescription
createdAtstringyes
createdBystringyes
descriptionstring or nullno
entriesarray of WalletEntryDtoyes
idstringyes
namestringyes
orgIdstringyes
projectIdstring or nullno
updatedAtstringyes
updatedBystring or nullno

WalletWithEntriesResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataWalletWithEntriesResponseDtoyes