Application
ApplicationBase
Section titled “ApplicationBase”Base model for an application to a funding opportunity.
| Property | Type | Required | Description |
|---|---|---|---|
| id | uuid | Yes | The unique identifier for the application |
| title | string | Yes | The title of the application |
| competitionId | uuid | Yes | The unique identifier for the competition |
| opportunityId | uuid | Yes | The unique identifier for the opportunity being applied to |
| formResponses | record<AppFormResponse> | Yes | The form responses for the application |
| status | AppStatus | Yes | The status of the application |
| submittedAt | utcDateTime or null | No | The date and time the application was submitted |
| validationErrors | array<unknown> | No | The validation errors for the application and form responses |
| customFields | record<CustomField> | No | The custom fields about the application |
| createdAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was created. |
| lastModifiedAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was last modified. |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "083b4567-e89d-42c8-a439-6c1234567890", "title": "Example Application", "competitionId": "083b4567-e89d-42c8-a439-6c1234567890", "formResponses": { // Form responses would be here }, "status": { "value": "inProgress", "description": "Application is in progress." }, "validationErrors": [], "submittedAt": null, "customFields": { "pctComplete": { "name": "Percentage Complete", "fieldType": "string", "value": "50%", "description": "Percentage of the application that has been completed" } }}The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: ApplicationBase.yamltype: objectproperties: id: $ref: uuid.yaml description: The unique identifier for the application title: type: string description: The title of the application competitionId: $ref: uuid.yaml description: The unique identifier for the competition opportunityId: $ref: uuid.yaml description: The unique identifier for the opportunity being applied to formResponses: $ref: "#/$defs/RecordAppFormResponse" description: The form responses for the application status: $ref: AppStatus.yaml description: The status of the application submittedAt: anyOf: - type: string format: date-time - type: "null" description: The date and time the application was submitted validationErrors: type: array items: {} description: The validation errors for the application and form responses customFields: $ref: "#/$defs/RecordCustomField" description: The custom fields about the application createdAt: type: string format: date-time description: The timestamp (in UTC) at which the record was created. lastModifiedAt: type: string format: date-time description: The timestamp (in UTC) at which the record was last modified.required: - id - title - competitionId - opportunityId - formResponses - status - createdAt - lastModifiedAtunevaluatedProperties: not: {}examples: - id: 123e4567-e89b-12d3-a456-426614174000 title: My Application competitionId: 123e4567-e89b-12d3-a456-426614174000 opportunityId: ad3b469a-d89a-42d3-c439-6c1234567890 formResponses: formA: applicationId: 123e4567-e89b-12d3-a456-426614174000 id: 123e4567-e89b-12d3-a456-426614174000 formId: 123e4567-e89b-12d3-a456-426614174000 response: firstName: John lastName: Doe email: john.doe@example.com phone: 123-456-7890 address: street: 123 Main St city: Anytown state: CA zip: "12345" country: null status: value: inProgress description: The form response is in progress validationErrors: - field: address.country message: Country is required createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Z status: value: inProgress description: The application is in progress. submittedAt: null createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Z customFields: attachments: name: attachments fieldType: object value: contacts: downloadUrl: https://example.com/file.pdf name: example.pdf description: A PDF file with instructions sizeInBytes: 1000 mimeType: application/pdf createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 budget: downloadUrl: https://example.com/excel.xlsx name: excel.xlsx description: The excel file for the application sizeInBytes: 1000 mimeType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 description: The attachments for the application applicationZipFile: name: applicationZipFile fieldType: object value: downloadUrl: https://example.com/application.zip name: application.zip description: The zip file for the application sizeInBytes: 50000 mimeType: application/zip createdAt: 2025-01-01T17:01:01 lastModifiedAt: 2025-01-02T17:30:00 description: The zip file for the applicationdescription: The base model for an application to a competition for a funding opportunity$defs: RecordAppFormResponse: type: object properties: {} unevaluatedProperties: $ref: AppFormResponse.yaml RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yamlThe TypeSpec code for this model.
/** The base model for an application to a competition for a funding opportunity */@example(Examples.Application.applicationBase)@Versioning.added(CommonGrants.Versions.v0_2)model ApplicationBase { // Identity fields shared with the AppRef reference model ...AppRef;
/** The unique identifier for the competition */ competitionId: Types.uuid;
/** The unique identifier for the opportunity being applied to */ @Versioning.added(CommonGrants.Versions.v0_3) opportunityId: Types.uuid;
/** The form responses for the application */ formResponses: Record<AppFormResponse>;
/** The status of the application */ status: AppStatus;
/** The date and time the application was submitted */ submittedAt?: utcDateTime | null;
/** The validation errors for the application and form responses */ validationErrors?: Array<unknown>;
/** The custom fields about the application */ customFields?: Record<Fields.CustomField>;
/** The system metadata for the application */ ...Fields.SystemMetadata;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.4.0 |
| ApplicationBase.yaml |
| 0.3.0 |
| ApplicationBase.yaml |
| 0.2.0 |
| ApplicationBase.yaml |
AppRef
Section titled “AppRef”A reference to an application, previewing the key fields a consumer needs to identify it and look it up or join it to another response. Appears wherever another record points to an application, such as the application an award resulted from.
| Property | Type | Required | Description |
|---|---|---|---|
| id | uuid | Yes | The unique identifier for the application |
| title | string | Yes | The title of the application |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "123e4567-e89b-12d3-a456-426614174000", "title": "My Application"}The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppRef.yamltype: objectproperties: id: $ref: uuid.yaml description: The unique identifier for the application title: type: string description: The title of the applicationrequired: - id - titleunevaluatedProperties: not: {}examples: - id: 123e4567-e89b-12d3-a456-426614174000 title: My Applicationdescription: |- A reference to an application, previewing the key fields a consumer needs to identify it and look it up or join it to another response. Appears wherever another record points to an application, such as the application an award resulted from.The TypeSpec code for this model.
/** A reference to an application, previewing the key fields a consumer needs * to identify it and look it up or join it to another response. Appears * wherever another record points to an application, such as the application * an award resulted from. */@example(Examples.Application.ref)@Versioning.added(CommonGrants.Versions.v0_2)model AppRef { /** The unique identifier for the application */ @visibility(Lifecycle.Read) id: Types.uuid;
/** The title of the application */ @Versioning.renamedFrom(CommonGrants.Versions.v0_4, "name") title: string;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.4.0 |
| AppRef.yaml |
| 0.2.0 |
| AppRef.yaml |
AppStatus
Section titled “AppStatus”The status of an application.
| Property | Type | Required | Description |
|---|---|---|---|
| value | AppStatusOptions | Yes | The status of the application, from a predefined set of options |
| customValue | string | No | A custom value for the status |
| description | string | No | A human-readable description of the status |
Formats
Section titled “Formats”A JSON example of this model.
{ "value": "submitted", "description": "Application has been submitted."}The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppStatus.yamltype: objectproperties: value: $ref: AppStatusOptions.yaml description: The status of the application, from a predefined set of options customValue: type: string description: A custom value for the status description: type: string description: A human-readable description of the statusrequired: - valueunevaluatedProperties: not: {}examples: - value: submitted description: The application has been submitted.description: The status of the applicationThe TypeSpec code for this model.
/** The status of the application */@example(Examples.Application.submittedStatus)@Versioning.added(CommonGrants.Versions.v0_2)model AppStatus { /** The status of the application, from a predefined set of options */ value: AppStatusOptions;
/** A custom value for the status */ customValue?: string;
/** A human-readable description of the status */ description?: string;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.2.0 |
| AppStatus.yaml |
AppStatusOptions
Section titled “AppStatusOptions”The default set of values accepted for application status.
| Value | Description |
|---|---|
| inProgress | The application is in progress |
| submitted | The application has been submitted and is being reviewed |
| accepted | The application has been accepted |
| rejected | The application has been rejected |
| custom | A custom status |
Formats
Section titled “Formats”A JSON example of this model.
"submitted"The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppStatusOptions.yamltype: stringenum: - inProgress - submitted - accepted - rejected - customdescription: |- The default set of values accepted for application status: - `inProgress`: The application is in progress - `submitted`: The application has been submitted and is being reviewed - `accepted`: The application has been accepted - `rejected`: The application has been rejected - `custom`: A custom statusThe TypeSpec code for this model.
/** The default set of values accepted for application status: * - `inProgress`: The application is in progress * - `submitted`: The application has been submitted and is being reviewed * - `accepted`: The application has been accepted * - `rejected`: The application has been rejected * - `custom`: A custom status */@Versioning.added(CommonGrants.Versions.v0_1)enum AppStatusOptions { inProgress, submitted, accepted, rejected, custom,}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.1.0 |
| AppStatusOptions.yaml |
AppFormResponse
Section titled “AppFormResponse”A form response associated with an application.
| Property | Type | Required | Description |
|---|---|---|---|
| applicationId | uuid | Yes | The unique identifier for the application |
| id | uuid | Yes | The unique identifier for the form response |
| formId | uuid | Yes | The form being responded to |
| response | record | Yes | The response to the form |
| status | FormResponseStatus | Yes | The status of the form response |
| validationErrors | array<unknown> | No | The validation errors for the form response |
| customFields | record<CustomField> | No | Custom attributes about the form response |
| createdAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was created. |
| lastModifiedAt | utcDateTime | Yes | The timestamp (in UTC) at which the record was last modified. |
Formats
Section titled “Formats”A JSON example of this model.
{ "id": "083b4567-e89d-42c8-a439-6c1234567890", "form": { "id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a", "name": "Form A", "description": "Form A description" }, "response": { "name": { "first": "John", "last": "Doe" }, "email": "john.doe@example.com", "phone": "555-123-4567" }, "status": { "value": "complete", "description": "The form response is complete" }, "validationErrors": [], "applicationId": "083b4567-e89d-42c8-a439-6c1234567890", "createdAt": "2024-01-01T00:00:00Z", "lastModifiedAt": "2024-01-01T00:00:00Z"}The JSON Schema for this model.
$schema: https://json-schema.org/draft/2020-12/schema$id: AppFormResponse.yamltype: objectproperties: applicationId: $ref: uuid.yaml description: The unique identifier for the application id: $ref: uuid.yaml description: The unique identifier for the form response formId: $ref: uuid.yaml description: The form being responded to response: $ref: "#/$defs/RecordUnknown" description: The response to the form status: $ref: FormResponseStatus.yaml description: The status of the form response validationErrors: type: array items: {} description: The validation errors for the form response customFields: $ref: "#/$defs/RecordCustomField" description: Custom attributes about the form response createdAt: type: string format: date-time description: The timestamp (in UTC) at which the record was created. lastModifiedAt: type: string format: date-time description: The timestamp (in UTC) at which the record was last modified.required: - applicationId - id - formId - response - status - createdAt - lastModifiedAtunevaluatedProperties: not: {}examples: - applicationId: 123e4567-e89b-12d3-a456-426614174000 id: 123e4567-e89b-12d3-a456-426614174000 formId: 123e4567-e89b-12d3-a456-426614174000 response: firstName: John lastName: Doe email: john.doe@example.com phone: 123-456-7890 address: street: 123 Main St city: Anytown state: CA zip: "12345" country: null status: value: inProgress description: The form response is in progress validationErrors: - field: address.country message: Country is required createdAt: 2021-01-01T00:00:00Z lastModifiedAt: 2021-01-01T00:00:00Zdescription: The model for a form response included in an application$defs: RecordUnknown: type: object properties: {} unevaluatedProperties: {} RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yamlThe TypeSpec code for this model.
/** The model for a form response included in an application */@example(Examples.Application.formResponse)@Versioning.added(CommonGrants.Versions.v0_2)model AppFormResponse { /** The unique identifier for the application */ applicationId: Types.uuid;
/** Includes all the fields from the FormResponseBase model */ ...FormResponseBase;}Changelog
Section titled “Changelog”| Version | Changes | Schema |
|---|---|---|
| 0.2.0 |
| AppFormResponse.yaml |