Application package
A bundle of forms and programs a household can apply to together as a single application.
AppPackageBase
Section titled “AppPackageBase”A specific application offering (e.g., PEAK, a joint SNAP+Medicaid+TANF application). Packages mediate between Applications and Programs: a client submits an Application against an AppPackage, and the server resolves which programs to enroll the household in based on the package's `programs` list. `programs` is server-managed — clients do not set it on create/update.
| Property | Type | Required | Description |
|---|---|---|---|
identifiers | Identifiers | Yes | System and cross-system identifiers for this package. |
name | string | Yes | Human-readable display name. |
description | string | No | Human-readable description of the package. |
programs | ProgramRef[] | Yes | The programs this package applies for. Server-managed. |
forms | FormRef[] | No | Forms attached to this package. |
jurisdiction | JurisdictionBase | No | The jurisdiction in which this package is available. |
administeringAgency | ProgramAgency | No | The administering agency for this package. |
status | AppPackageStatus | Yes | The current status of the package. |
{ "identifiers": { "systemId": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "otherIds": { "co_peak": { "registry": "co_peak", "value": "PEAK-2026", "description": "Colorado PEAK portal identifier" } } }, "name": "PEAK — Colorado Benefits Application", "description": "Colorado's joint application for SNAP, Medicaid, and TANF.", "programs": [ { "id": "40a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "Colorado SNAP" }, { "id": "50a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "Colorado Medicaid" }, { "id": "60a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "Colorado TANF" } ], "forms": [ { "id": "70a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "PEAK Application Form" } ], "status": { "value": "active", "description": "" }}$schema: https://json-schema.org/draft/2020-12/schema$id: AppPackageBase.yamltype: objectproperties: identifiers: $ref: Identifiers.yaml description: System and cross-system identifiers for this package. name: type: string description: Human-readable display name. description: type: string description: Human-readable description of the package. programs: type: array items: $ref: ProgramRef.yaml description: The programs this package applies for. Server-managed. forms: type: array items: $ref: FormRef.yaml description: Forms attached to this package. jurisdiction: $ref: JurisdictionBase.yaml description: The jurisdiction in which this package is available. administeringAgency: $ref: ProgramAgency.yaml description: The administering agency for this package. status: $ref: AppPackageStatus.yaml description: The current status of the package.required: - identifiers - name - programs - statusexamples: - identifiers: systemId: 30a12e5e-5940-4c08-921c-17a8960fcf4b otherIds: co_peak: registry: co_peak value: PEAK-2026 description: Colorado PEAK portal identifier name: PEAK — Colorado Benefits Application description: Colorado's joint application for SNAP, Medicaid, and TANF. programs: - id: 40a12e5e-5940-4c08-921c-17a8960fcf4b name: Colorado SNAP - id: 50a12e5e-5940-4c08-921c-17a8960fcf4b name: Colorado Medicaid - id: 60a12e5e-5940-4c08-921c-17a8960fcf4b name: Colorado TANF forms: - id: 70a12e5e-5940-4c08-921c-17a8960fcf4b name: PEAK Application Form status: value: active description: ""description: |- A specific application offering (e.g., PEAK, a joint SNAP+Medicaid+TANF application). Packages mediate between Applications and Programs: a client submits an Application against an AppPackage, and the server resolves which programs to enroll the household in based on the package's `programs` list.
`programs` is server-managed — clients do not set it on create/update./** A specific application offering (e.g., PEAK, a joint SNAP+Medicaid+TANF * application). Packages mediate between Applications and Programs: a client * submits an Application against an AppPackage, and the server resolves * which programs to enroll the household in based on the package's * `programs` list. * * `programs` is server-managed — clients do not set it on create/update. */@example(Examples.AppPackage.coloradoPeak)@Versioning.added(Versions.v0_1)model AppPackageBase { /** System and cross-system identifiers for this package. */ identifiers: Fields.Identifiers;
/** Human-readable display name. */ name: string;
/** Human-readable description of the package. */ description?: string;
/** The programs this package applies for. Server-managed. */ programs: ProgramRef[];
/** Forms attached to this package. */ forms?: FormRef[];
/** The jurisdiction in which this package is available. */ jurisdiction?: JurisdictionBase;
/** The administering agency for this package. */ administeringAgency?: ProgramAgency;
/** The current status of the package. */ status: AppPackageStatus;}AppPackageStatus
Section titled “AppPackageStatus”The status of an application package.
| Property | Type | Required | Description |
|---|---|---|---|
value | AppPackageStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "active", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: AppPackageStatus.yamltype: objectproperties: value: $ref: AppPackageStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: The status of an application package./** The status of an application package. */@Versioning.added(Versions.v0_1)model AppPackageStatus is Fields.ExtensibleEnumT<AppPackageStatusOptions>;
// #########################################################// AppPackageBase// #########################################################
/** A specific application offering (e.g., PEAK, a joint SNAP+Medicaid+TANF * application). Packages mediate between Applications and Programs: a client * submits an Application against an AppPackage, and the server resolves * which programs to enroll the household in based on the package's * `programs` list. * * `programs` is server-managed — clients do not set it on create/update. */@example(Examples.AppPackage.coloradoPeak)@Versioning.added(Versions.v0_1)model AppPackageBase { /** System and cross-system identifiers for this package. */ identifiers: Fields.Identifiers;
/** Human-readable display name. */ name: string;
/** Human-readable description of the package. */ description?: string;
/** The programs this package applies for. Server-managed. */ programs: ProgramRef[];
/** Forms attached to this package. */ forms?: FormRef[];
/** The jurisdiction in which this package is available. */ jurisdiction?: JurisdictionBase;
/** The administering agency for this package. */ administeringAgency?: ProgramAgency;
/** The current status of the package. */ status: AppPackageStatus;}AppPackageStatusOptions
Section titled “AppPackageStatusOptions”Predefined set of application package statuses.
| Value | Description |
|---|---|
active | The package is accepting applications. |
inactive | The package is not accepting applications. |
custom | A caller-defined status. |
"active"$schema: https://json-schema.org/draft/2020-12/schema$id: AppPackageStatusOptions.yamltype: stringenum: - active - inactive - customdescription: |- Predefined set of application package statuses.
- `active`: The package is accepting applications. - `inactive`: The package is not accepting applications. - `custom`: A caller-defined status./** Predefined set of application package statuses. * * - `active`: The package is accepting applications. * - `inactive`: The package is not accepting applications. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum AppPackageStatusOptions { active, inactive, custom,}AppPackageRef
Section titled “AppPackageRef”A denormalized reference to an application package. Clients follow the `id` to `GET /packages/{packageId}` for the full record.
| Property | Type | Required | Description |
|---|---|---|---|
id | uuid | Yes | The application package's unique identifier. |
name | string | Yes | Human-readable display name. |
{ "id": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: AppPackageRef.yamltype: objectproperties: id: $ref: uuid.yaml description: The application package's unique identifier. name: type: string description: Human-readable display name.required: - id - namedescription: |- A denormalized reference to an application package. Clients follow the `id` to `GET /packages/{packageId}` for the full record./** A denormalized reference to an application package. Clients follow the * `id` to `GET /packages/{packageId}` for the full record. */@Versioning.added(Versions.v0_1)model AppPackageRef { /** The application package's unique identifier. */ id: Types.uuid;
/** Human-readable display name. */ name: string;}FormRef
Section titled “FormRef”A denormalized reference to a form. Form definitions themselves live in the docs site / form library and are out of scope for the v0.1.0 data API; this ref is the link to follow once a Form resource exists.
| Property | Type | Required | Description |
|---|---|---|---|
id | uuid | Yes | The form's unique identifier. |
name | string | Yes | Human-readable display name. |
{ "id": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "name": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: FormRef.yamltype: objectproperties: id: $ref: uuid.yaml description: The form's unique identifier. name: type: string description: Human-readable display name.required: - id - namedescription: |- A denormalized reference to a form. Form definitions themselves live in the docs site / form library and are out of scope for the v0.1.0 data API; this ref is the link to follow once a Form resource exists./** A denormalized reference to a form. Form definitions themselves live in * the docs site / form library and are out of scope for the v0.1.0 data * API; this ref is the link to follow once a Form resource exists. */@Versioning.added(Versions.v0_1)model FormRef { /** The form's unique identifier. */ id: Types.uuid;
/** Human-readable display name. */ name: string;}